所以我想在這裏做的是讓我的用戶登錄。 這是我用來做到這一點的腳本。MySQLi/PHP:沒有重定向到錯誤頁面?
我剛剛使用了在這裏找到的轉換器:https://wikis.oracle.com/display/mysql/Converting+to+MySQLi將我的Mysql轉換爲mysqli,因爲我是初學者,不知道該怎麼做。
現在,當用戶輸入正確的密碼和用戶名。 它完全符合我的要求,並且用戶被重定向到'dashboard.php' 但是,當用戶輸入不正確的數據時,用戶將以黑色'login.php'結尾(這是我在此處顯示的代碼)而不是'loginerror.php',這是我想要的。
我希望這裏有人能幫助我,因爲我很迷茫。
PS:是的我知道密碼現在是純文本,但不要擔心,因爲我會在稍後解決。
<?php
session_start();
if(!$_SERVER['REQUEST_METHOD'] == 'POST') {
echo "Please leave.<br /><br />";
echo "<a href='index'>Click to go back</a>";
exit();
}
if(($GLOBALS["___mysqli_ston"] = mysqli_connect('localhost', 'root', ''))) {
if(((bool)mysqli_query($GLOBALS["___mysqli_ston"], "USE users"))) {
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$zoekresultaat = mysqli_query($GLOBALS["___mysqli_ston"], $query);
if($zoekresultaat = mysqli_affected_rows($GLOBALS["___mysqli_ston"]) > 0) {
$record = mysqli_fetch_assoc($zoekresultaat);
$zoekresultaat = mysqli_query($GLOBALS["___mysqli_ston"], $query);
if($zoekresultaat = mysqli_affected_rows($GLOBALS["___mysqli_ston"]) > 0) {
$record = mysqli_fetch_assoc($zoekresultaat);
$_SESSION['login'] = true;
$_SESSION['username'] = $record['username'];
header('location: dashboard.php');
} else {
header('location: loginerror.php');
}
exit();
} else {
echo "<br /><br />Could not find Database";
}
} else {
echo "<br /><br />Could not connect to Database";
}
}
?>
DEBUG&檢查它是否實際上是在其他條件。 – Rikesh
在您編寫更多SQL代碼之前,您必須**閱讀[正確的SQL轉義](http://bobby-tables.com/php)以避免[SQL注入漏洞](http:// bobby- tables.com/)。使用'mysqli',你需要使用['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)方法提供你的查詢所使用的值,永遠不要用戶提供的數據從'$ _POST'直接進入您的查詢。 – tadman