2016-12-07 5 views
1

私はユーザ名とパスワードを.txtファイルに保存しているので、ユーザがユーザ名を入力するログインページを作成する必要があります。パスワード。ユーザー名とパスワードがlogin.txtファイルに含まれている場合、 "フォーム"はsessionOpen.phpファイルに送られて処理されます。 explode(":", $values)PHPでのログインのために.txtファイルに保存されているユーザ名とパスワードを確認してください

だから、通常のセッションはとても作成しなければならない理由は、ユーザ名とパスワードは、したがって、user1:password1のフォーマットに従う、login.txtファイル内

<?php 
    $myFile = "login.txt"; 
    $contents = file_get_contents($myFile); 
    $contents = explode("\n", $contents); 

foreach($contents as $values){ 
    $loginInfo = explode(":", $values); 
     $user = $loginInfo[0]; 
     $password = $loginInfo[1]; 

    if($user == $_POST['username'] && $password == $_POST['password']){ 
     session_start(); 
     header('Location: browse.php'); 
    } 
    else{ 
     echo '<script>alert("Please verify your username and password.");</script>' 
    } 
} 
    ?> 

:ここ

は私sessionOpen.phpコードですユーザーはアカウントを所有するユーザーにロックされているWebサイトのページにアクセスできるようになりました。コードが機能していません。それは場合に役立ちます。ここ

は形式です:

<form action="sessionOpen.php" method="post"> 
    <h2>Username:</h2><input type="text" id="username"><br> 
    <h2>Password:</h2><input type="password" id="password"><br> 
    <input type="submit" value ="submit"> 
    <input type="reset" value ="reset"> 
</form> 
+0

何がうまくいかない? –

+0

シンプル:あなたの入力とエラー報告のための名前属性がありませんでした。 –

+0

これはあなたの質問ではありませんが、アドバイスにとって重要です。パスワードをプレーンテキストで保存するのは悪い習慣です。 http://plaintextoffenders.com/faq/devs –

答えて

2

あなたの入力は名前が必要です。

$_POST['username']などの入力からは、いずれの入力にもデータが送信されていない入力がないため、たとえばname='username'の入力から送信されます。

ほとんどのブラウザには、データの受け渡しを許可するコンソールがあります。これらは、コーディングフォームに便利です。コメントから

注:

  • また、あなたのelseで終わるセミコロンが欠落しています。
  • エラー報告は、このようなものを把握するのに役立つ便利なツールです。あなたは、これらの行をあなたのPHPスクリプトの先頭に追加することでそれを有効にすることができます:error_reporting(E_ALL); ini_set("display_errors", 1);
+0

それは動作します!本当にありがとう、私はIDがトリックを行うだろうと思ったが、あなたはまた必要な名前を知らなかった。 – lesterpierson123

+0

私のコードは 'session_start();'でログインセッションを作成していますか?ですから、ユーザが 'session_start();を持っている場合にのみ、他のページにアクセスできるようにすることができます。 – lesterpierson123

+0

' session_start() 'はあなたが持っているように何もしません。その機能は、後で他のページに書き込んでから読み込むことができるセッションを開始することです。たとえば、$ _SESSION ['username'] = $ username'という変数を作成し、別のページで 'session_start()'をもう一度呼び出すと、$ _SESSION ['username'] 'は再び利用可能です。 @ lesterpierson123 –

関連する問題