2017-02-27 15 views
0

この問題の原因となっている私のPHPでは何が問題なのでしょうか?コードからわかるように、私はif文に基づいてエコーしました。詳細がクエリと等しい場合、Test2がエコーします。しかし、なぜそれはリダイレクトしませんか?何が間違っているのかわかりません。PHPリダイレクトされません

<?php 
include "../inc/db.php"; 
include "../inc/functions.php"; 

$tip = ""; 

if(isset($_POST["submit"])) { 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 

    $username = mysqli_real_escape_string($connection, $username); 
    $password = mysqli_real_escape_string($connection, $password); 

    $query = "SELECT * FROM users WHERE username = '{$username}' "; 
    $select_user_query = mysqli_query($connection, $query); 

    if(!$select_user_query) { 
     die("Query failed. Reason: " . mysqli_error($connection)); 
    } 

    while($row = mysqli_fetch_array($select_user_query)) { 
     $db_user_id = $row['id']; 
     $db_username = $row['username']; 
     $db_password = $row['password']; 
    } 

    if($username !== $db_username && $password !== $db_password) { 
     header("Location index.php"); 
     $tip = "Incorrect details!"; 
     echo "Test1"; 
    } elseif ($username == $db_username && $password == $db_password) { 
     header("Location "); 
     echo "Test2"; 
    } else { 
     header("Location index.php"); 
     echo "Test3"; 
    } 
} 

?> 

正しい詳細を提出する結果: form01

と私は、私はこれを取得mysqlデータベースに存在するdoesntの何かを入力した場合dashboard.phpは help02

存在しないことの証明: help3

しかし、whileループで変数を定義しました

01リダイレクト後に `;
+0

がありませんでした。とにかくページを離れる場合は、リダイレクト後に何かをエコーし​​ますか?他の何か、あなたの最初のif *と* '&|'の代わりに*または* '||'にする必要があります。 – eeetee

+0

3番目の画像(2番目の質問?)は、結果がないときに反復する行$ db_usernameと$ db_passwordは宣言されていません。 –

+0

'header'の' location'の後ろにコロンがありません。あなたはあなたのパスワードをハッシュする必要があります。 – chris85

答えて

0
header("Location dashboard.php"); 

セミコロン()`の出口を追加しようと

私は愚かだ
header("Location: dashboard.php"); 

...

+0

mysqlからクエリに一致するデータがない場合に宣言エラーを避けるために、while文の外側にユーザ​​名とパスワード変数を宣言するのを忘れないでください。 –

+0

これは、あなたが含むエラーメッセージを説明しません。それは無関係でしたか?あなたはおそらくプログラミングの問題よりもタイプミスのように思えるので、質問を削除することができます。 – chris85

関連する問題