2016-12-03 14 views
-1

現在、ユーザーがコンテンツにアクセスするにはログインする必要があるHTMLページを作成しています。ユーザーはHTMLページのフォームにユーザー名とパスワードを入力する必要があり、送信ボタンを押すと、ユーザー名とパスワードのSQLデータベースを使用して情報をPHPでチェックします。ユーザーが入力した情報が訂正されると、残りの「ウェブサイト」にアクセスすることが許可されます。そうでない場合、エラーが発生します。ただし、現在のコードでは、ユーザーが正しい資格情報を入力しても、ページへのアクセスは許可されません。ここでPHPログインページで値が受け入れられていません

は私の現在のコードです:誰もが私に私の問題を解決する方法上の任意のヒントやヘルプを提供することができれば

if($_POST['submit']) { 
    $sql = "SELECT * FROM log WHERE user='username' AND pass='password'"; //'user' and 'pass' being the SQL table values, and 'username' and 'password' being the HTML form ids 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      header("Location: home.html"); 
      exit(); 
     } 
    } 

    else { 
     echo "Login information is incorrect."; 
    } 
} 

、それをいただければ幸いです。

+0

あなたのHTMLコードも共有してください。 – Bokul

+0

'user = 'username''は静的な値です。変更されることはありません。おそらく、あなたは 'user = '{$ _ POST [' username ']}'を代わりに使うでしょうか?しかし、それはSQLインジェクションにオープンです!準備文を使用する方法を学びます。 – Qirel

+0

もう一つ、 'user'はMySQLの予約語です。[http://dev.mysql.com/doc/refman/5.7/en/keywords.html](http://dev.mysql.com/ doc/refman/5.7/ja/keywords.html)。あなたのクエリーでそれをエスケープするためにバッククイックを使用してください。 –

答えて

1

あなたは、SQLクエリへの入力を渡していないが、代わりに実際の文字列usernamepasswordに渡している(有効な資格情報がusernamepasswordをされない限り、 - テストは失敗します)。代わりに、.演算子で次のように結合する必要があります。

if($_POST['submit']) { 
    $sql = "SELECT * FROM log WHERE user='" . $_POST['username'] . "' AND pass='" . $_POST['password'] . "'"; //'user' and 'pass' being the SQL table values, and 'username' and 'password' being the HTML form ids 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      header("Location: home.html"); 
      exit(); 
     } 
    } 

    else { 
     echo "Login information is incorrect."; 
    } 
} 

P.S.また、あなたのコードは "SQL Injection"と呼ばれる攻撃に対して脆弱であることに注意してください。また、あなたのパスワードをsaltでハッシュする必要があります。

+0

'$ _POST ['submit'] ['username']'それは本当にそのような配列ですか? – Qirel

+0

ああ、申し訳ありません、私はappologise – Max

+0

さて、私はそれを修正した – Max

関連する問題