2017-09-10 3 views
0

私はログインするためのユーザー名だけをとるシンプルなファイル共有サイトを作成しています。 しかし、たとえ私が正しいユーザー名を持っている場合、プログラムは以下の間違っている私のコードであると考えて:HTMLとPHPを使って正しくログインするには?

<form method ="POST"> 
    <p> 
     <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
    </p> 
    <p> 
     <input type="submit" name = "LogIn" value="Log In" /> 
     <input type ="reset"/> 
    </p> 
</form> 

PHP私が間違っている可能性がありますどの部分

<?php 
$users = file('users.txt'); 
if (isset($_POST['LogIn'])) { 
    echo $_POST['userID'].'<br>'; 
foreach ($users as $user) { 
    if ($_POST['userID']==$user){ 
     header("Location: FileShareLogInRedirect.php"); 
     exit; 
    } 
} 
echo "Wrong ID".'<br>'; 
?> 

?それはうまくいくようです。

+0

ファイルusers.txtの1人のユーザー(生の1人)のみが動作します。 – b2ok

+1

空白または大文字の文字である可能性があります。ファイルの内容と提出内容を表示 – Qirel

答えて

0

あなたは他の文で

echo "Wrong ID".'<br>'; 

反っていません。 例:他の声明なし

<?php 
$users = file('users.txt'); 
if (isset($_POST['LogIn'])) { 
    echo $_POST['userID'].'<br>'; 
foreach ($users as $user) { 
    if ($_POST['userID']==$user){ 
     header("Location: FileShareLogInRedirect.php"); 
     exit; 
    } 
} 
else{ 
    echo "Wrong ID".'<br>'; 
} 
?> 

はあなたの文は天候に関係なく、すべての時間を実行するログインが正しいかどうかエコー。

1

投稿ボタンの値はで、はPOSTとともに送信されます。

送信ボタンを使用してフォーム値を渡すことは避けてください。

<form method ="POST"> 
     <p> 
      <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
     </p> 
     <p> 
      <input type="submit" value="Log In" /> 
      <input type ="reset"/> 
     </p> 
    </form> 

PHP一部

<?php 
$users = file('users.txt'); 
if (isset($_POST['userID'])) { 
    echo $_POST['userID'].'<br>'; 
foreach ($users as $user) { 
    if ($_POST['userID']==$user){ 
     header("Location: FileShareLogInRedirect.php"); 
     exit; 
    } 
} 
echo "Wrong ID".'<br>'; 
?> 
+0

助けてくれてありがとう。しかし、これは何も変わらない。私のプログラムは、正しいユーザー名がすべて間違っていると考えています。 – keon6

+0

"何も変更しません" ???冗談か?どのようにあなたを助けようとしている人々に少し信用を与えることについて。あなたのコードはisset($ _ POST ['LogIn'])で止まるでしょう...私のコードがあなたのために "何も変えない"のは...どうも... ...あなたの...感謝しません... ここに..ここであなたに恩を受け続けることができます。 これをループに入れてみましょう。foreach($ users as $ user){echo $ user。 "
";} または、何が入っているかを見るためにusers.txtの内容を投稿してください。 – Stnfordly

0

関数ファイル()行ごとに処理できません。この場合のようにrawで処理するには、関数in_array()を使用します。関数in_array()は明示的な関数array()がある場合のみ使用できます。そのため、変数$ユーザーが等しい配列()にする必要があります。関数fopen()とloop Whileの助けを借りて、関数in_array()を使用するload array()とaftherをロードします。 コード:

<form method ="POST"> 
    <p> 
     <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
    </p> 
    <p> 
     <input type="submit" name = "LogIn" value="Log In" /> 
     <input type ="reset"/> 
    </p> 
</form> 

<?php 
$users=array(); 
$fpn=fopen('users.txt', 'r'); 
while (!feof($fpn)) 
{ 
    $user=fgets($fpn); 
    $user=trim($user); 
    $users[]=$user; 
} 
if (in_array($_POST['userID'], $users)) { 
    header("Location: FileShareLogInRedirect.php"); 
     exit; 
} 
echo "Wrong ID".'<br>'; 
?> 
関連する問題