這是登錄的PHP:我試圖讓一個登錄我的網站,但不工作
<?php
// Get user input values
$username = $_POST['user'];
$password = $_POST['pass'];
// Protect againts sql injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
//connect to the database and selsct database
mysql_connect("localhost", "root", "//im hiding the password");
mysql_select_db("test");
//Query the database for user
$result = mysql_query("SELECT * FROM users WHERE username = '" . $username . "' && password = '" . $password . "'") or die("Failed to query database " . mysql_error());
$row = mysql_fetch_array($result);
if ($row['username'] == $username && $row['password'] == $password) {
echo "Login Successful Welcome: " . $row['username'];
} else {
echo "Invalid Username or Password";
}
這是HTML:
<html>
<head>
<meta charset="UTF-8" />
<title>Simple Login</title>
</head>
<body>
<h1 style="text-align:center;">Simple Login</h1>
<div id="wrapper">
<form style="text-align:center;" action="process.php" method="post">
Username:
<input type="text" name="user" />
<br />Password:
<input type="password" name="pass" />
<br />
<input type="submit" name="submit" value="Login" />
</div>
</form>
</body>
<html>
有人能告訴我爲什麼PHP不檢查數據庫,如果用戶名和密碼是正確的。哦,當你在用戶名和密碼框裏什麼也沒有輸入的時候,它會把你登錄進去!
你的代碼是多餘的。你已經檢查過用戶/查詢是否在查詢本身中匹配,所以在php中這樣做實際上是零點。該查詢將返回已經與這些值匹配的行,或者根本不返回結果。並將密碼作爲純文本存儲在您的數據庫中,這是一個巨大的安全漏洞,只是爲了解決問題。 –
@RamRaider:毫無意義。 '&&'和'和'在功能上是相同的。 –
指出..並刪除 – RamRaider