2017-11-12 12 views
3

私のソースコードの読み取り可能:最後の部分だけは、if文

<?php 

$x = 0; 
$get = $_POST['suser']; 
$lines = file("usernames.txt"); 

foreach ($lines as $name) { 
    $x++; 
} 

for ($z = 0; $z < $x; $z++) { 
    if ($lines[$z] == $get) { 
     echo "Account is already taken!"; 
    } 
} 
?> 

私はtxtファイル、account1、account2、およびaccount3の3つのアカウントを持っています。 "account1"または "account2"をテキストボックスに配置して送信すると、ifステートメントは機能しませんでしたが、テキストボックスに "account3"を置くとifステートメントが機能します。それは単にtxtファイルの最後の部分がifステートメントで読むことができるだけです。

$xはアカウントカウンターです。それを修正するには?

答えて

0

各行(最後のものを除いて、すなわち。、account3)はif文がaccount3ためaccount1とaccount2ため0を返すとされていない理由です末尾\n文字が含まれています。だから、改行文字なしで行を読むために、file関数にFILE_IGNORE_NEW_LINESフラグをつけて使用します。

<?php 
$x= 0; 
$get = $_POST['suser']; 
$lines = file("usernames.txt", FILE_IGNORE_NEW_LINES); 
foreach($lines as $name) 
{ 
    $x++; 
} 
for($z = 0; $z < $x; $z++) 
{  
    if($lines[$z] == $get) 
    { 
     echo "Account is already taken!"; 

    } 
} 
?> 
+0

OMG。ありがとう ! – zxc

関連する問題