2016-04-01 3 views
-4

テキストファイル内の文を作る、そこにある: 31.146.153.182PHPは、私はファイルをips.txtいる

ENDFILE->これは私のIP

だったと私はindex.phpの

<?php 
    $file ='ips.txt'; 
    $ips = file($file); 
    $client = $_SERVER['REMOTE_ADDR']; 
    if ($ips[0]==$client) { 
     echo "ip is blocked"; 
    } else { 
     echo "it does not work"; 
    } 
?> 
を持っています

このスクリプトは$ips[0] == $clientと等しくはありませんが、echoでは実際は同じです。

+0

を質問があります... – Genzotto

+0

あなたのコードがips.txtを読みたいと思っていましたか? – claudios

+0

クライアントのインラインextesnionをIPで防御したい、IPを記録してips.txtに新しい行で移動し、IPが存在するならクライアントのインライン拡張を隠したい –

答えて

0

デフォルトでは、fileが改行に沿ってコピーされます(as documented)。しかし、改行はREMOTE_ADDRの結果に含まれていません。

あなたはこのように、ファイル関数にFILE_IGNORE_NEW_LINESフラグを追加することによって、この動作を回避することができます

$ips = file($file, FILE_IGNORE_NEW_LINES); 

それとも、代わりにあなたのチェックの行トリミングすることができます:

if (trim($ips[0]) == $client) { ... } 
関連する問題