環境変数の中身がnullかどうか判定するプログラム

■作ったプログラム概要
接続してきたクライアントのIPアドレスをフォームに表示させ、submitボタンを押すとサーバーサイドにそのIPアドレスが送信されるプログラムです。プロキシを経由している場合としていない場合で、IPアドレスが格納されている環境変数が違うため、条件分岐による処理もしました。


■ポイント
◎is_null関数の使用。
→is_null(変数)で、変数の中身がnullかどうかを調べててくれ、nullだと真、そうでない場合は偽を返してくれます。


環境変数「HTTP_X_FORWARDED_FOR」と「REMOTE_ADDER」の使用。
→「HTTP_X_FORWARDED_FOR」には、プロキシを通して接続をしてきている大元の接続元IPアドレスが格納されています。「REMOTE_ADDER」は、プロキシを通していないときに、接続元のIPアドレスが格納されている変数です。


◎var_dump関数の使用。
→var_dump(変数)とすると、変数に入っている値を表示してくれます。perlのData Dumperみたいなもの。完成したら、ここは消してください。


◎フォームは、改変不可能。
→inputタグのところの最後に「readonly」と入れることで、フォームに自動的に入れられた値を変更できないようにしています。


■注意事項
「*************」の部分は、アクション先のCGI等を指定してください。

<?php
header("Content-type: text/html; charset=utf8");
?>

<?php
if (is_null($_SERVER['HTTP_X_FORWARDED_FOR'])){
    $ip=$_SERVER['REMOTE_ADDR'];
}else{
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
var_dump($ip);
?>

<title>IPアドレス登録</title>
<div align="center">
<br/>
haiji環境に入れるよう下記のIPアドレスを登録します。<br/>
addボタンを押してください。<br/>
<br/>

<form method=post action=********.cgi>
address:<input type='text' name='addr' value='<?php echo $ip; ?>' readonly>
<input type='submit' value='add'>
</form>

phpって初めて書いたけど、便利だね。