我正在嘗試創建一個簡單的登錄頁面。我有一個註冊頁面,當用戶註冊並嘗試登錄時,它將導航到主頁。但是,當用戶嘗試登錄並且用戶名和密碼不在數據庫中時,我希望腳本將其導航到註冊頁面。當登錄失敗時導航到註冊頁面
我有問題的else語句,任何人都可以幫我解決這個問題嗎?
這是腳本...
function SignIn()
{
session_start(); //starting the session for user profile page
if(!empty($_POST['userName']))
{
$query = mysql_query("SELECT * FROM users where userName = '$_POST[userName]' AND createPassword = '$_POST[createPassword]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] = $row['createPassword'];
echo "<script>window.location = 'index.php'</script>";
}
else
{
echo "<script>window.location = 'signUp.php'</script>";
}
}
}
if(isset($_POST['submit']))
{
SignIn();
}
?>
編輯:您的反饋你好,謝謝,我已經改變了查詢和編輯的回聲。感謝您的安全提示,但是在這個腳本中安全性並不是問題。如果您已經註冊,我只需要它直接訪問索引,如果您沒有註冊,也可以訪問註冊。 如果登錄和密碼不正確,我仍然無法將頁面重定向到註冊頁面。
如果它正確,它會將您帶到索引中,但如果它錯了,它將顯示此腳本所在的php頁面。
這是我目前的嘗試
function SignIn()
{
session_start();
if(!empty($_POST['userName']))
{
$query = mysql_query("SELECT * FROM users where userName = '{$_POST['userName']}' AND createPassword = '{$_POST['createPassword']}'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] = $row['createPassword'];
header("Location:http://localhost/waves/index.php");
}
else if (!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] != $row['createPassword'];
header("Location:http://localhost/waves/signUp.php");
}
}
}
if(isset($_POST['submit']))
{
SignIn();
}
?>
究竟出了什麼問題?它永遠不會達到else語句,還是它不會重定向? – Max
這非常容易受到SQL注入的影響,您不得以這種方式使用安全性,使用準備好的語句以 – Firewizz
@alan smith開頭。您正在使用兩個相同的「if」條件。你只需要一個'if'條件,其他將是'else'而不是'else if'。 –