2017-02-27 98 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

,並證明dashboard.php確實存在 help02

,如果我進入這並不在MySQL數據庫中存在,那麼我得到這樣的: help3

但我在while循環中定義了變量

+0

試圖加入'出口();'重定向後。另外,如果你離開頁面,爲什麼你會在重定向後迴應一些東西?還有其他的東西,你的第一個if應該是*或*'||'而不是*和*'&&' – eeetee

+0

對於第三個圖像(第二個問題?),這是因爲當沒有結果時,沒有行要迭代這樣就不會聲明$ db_username和$ db_password。 –

+0

您在'header'上的'location'之後缺少冒號。你應該哈希你的密碼。 – chris85

回答

0
header("Location dashboard.php"); 

分號失蹤

header("Location: dashboard.php"); 

我傻......

+0

不要忘記在while語句之外聲明您的用戶名和密碼變量,以避免在mysql沒有匹配查詢的情況下發生聲明錯誤。 –

+0

這不會解釋您包含的錯誤消息。那是不相干的?你可能會刪除這個問題,因爲它看起來更像是一個錯字而不是編程問題。 – chris85