if文がifにならない?
よろしくお願いします。
連続投稿防止の為に、getenvで取得したIPアドレスと
time()で取得した時間をcsvファイルに
xxx.xxx.xxx.xxx<>1249494949
xxx.xxx.xxx.xxx<>1249494949
という風に記述をしてます。
具体的には、
<?php
$ipdesu = "./ip.csv";
$ipgetdesu = getenv( "REMOTE_ADDR");
$times = time();
$hoge = 0;
$roop_open = fopen( $ipdesu, "r");
while(! feof($roop_open)){
$roop_get = fgets( $roop_open);
$roop_ex = explode( "<>", $roop_get);
$hogehoge = $hoge++;
//IPチェック
if( in_array( $ipgetdesu, $roop_ex)){
echo "配列検索TRUE";
//時間チェック
if ( "60" < $times - $roop_ex[1]){
$fp = file( $ipdesu);
unset( $fp[$hogehoge]);
$fp_open = fopen( $ipdesu, "w");
foreach ( $fp as $value){
fputs( $fp_open, $value);
}
fclose( $fp_open);
}else{
echo "連投規制";
}
}else{
$fal_open = fopen( $ipdesu, "a");
fputs( $fal_open, $ipgetdesu."<>".time()."\n");
fclose( $fal_open);
echo "配列検索FALSE";
}
}
fclose( $roop_open);
?>
と記述しています。
<まだ、始めたばかりなのでロック制限とかしてませんがそこはご勘弁を
上記を実行すると、if ここ else そこ
の本来、真であれば「ここ」が
偽であれば「そこ」だけが実行されると思っていたのですが、
上記の実行結果は、「ここ」も「そこ」も実行されてしまい
かつ、IPを記述したファイルの検索が2回め実行した時に
同じIP
127.0.0.1<>時間
127.0.0.1<>時間
とローカルで試してるのでIPが変更になるはずないのですが(DHCPは念の為しようしていません
in_arrayでヒットしないのは何故でしょうか?
また、ifが正しく動作しないのは多重ifとでも言えばいいのでしょうか?
が悪いからでしょうか。
つたないソースで申し訳ないですが、どうかよろしくお願いします。
お礼
できました ありがとうございます