目前我正在一個網站上工作,並且遇到登錄腳本中的問題。登錄時出現錯誤PHP代碼
<?php
include 'includes/connect.php';
include 'includes/core.php';
?>
<?php
$user = sanitizeString($_POST['username']);
$pass = sanitizeString($_POST['password']);
if($user == "" || $pass = ""){
$error = "Not all fields were entered<br />";
} else {
$query = "SELECT username,password FROM admins WHERE username='$user' AND password='$pass'";
if(mysql_num_rows(queryMysql($query)) == 0){
print "Wrong Username/Password <br />";
print "$user";
print "$pass";
} else {
$_SESSION['user'] = $user;
$_SESSION['pass'] = $pass;
print "Successfully Logged In. Redirecting...";
}
}
?>
<html>
<head>
<title>
Login
</title>
<link rel="stylesheet" type="text/css" href="css/stylesheet.css">
</head>
<body>
<div id="mainDiv">
<h2> Login</h2>
<form action="login.php" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br><br>
<input type="submit" name="login" value="Login">
</form>
</div>
</body>
</html>
我知道大部分這是不完整的,但這不是問題。問題是,當我嘗試登錄時,我收到「不正確的用戶名/密碼」。經過進一步調查,我發現$ pass沒有設置。
爲什麼$傳沒有被設置和顯示?
請勿將輸入元素命名爲與其「類型」值相同的名稱。這可能不會解決問題,這只是良好的做法 – Deryck
爲什麼你不讓你的如果是這樣的? if(trim($ user)!=「」&& trim($ pass)!=「」){'。我還看到,if語句中的第二個表達式不是一個比較。調試的最佳方式是使用'var_dump'輸出變量' – demonking
'if($ user ==「」|| $ pass =「」){'您已經創建了'$ pass' ='「」'添加一個等於make它是一個比較運算符 – manta