が動作していない: 私は私のウェブサイトのログインを作成しようとしていますが、これは、ログインのPHPで
<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
// 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です私はなぜユーザー名とパスワードが正しい場合、PHPがデータベースをチェックしないのでしょうか?ああ、あなたがユーザー名とパスワードのボックスに何も入れていないと、それはあなたをログインさせます!
あなたのコードは冗長です。クエリ自体でユーザー/パスの一致が既にチェックされているので、phpでもそれを行うには文字通りゼロ点があります。クエリは既に値に一致する行を返すか、まったく結果を返しません。パスワードを平文でデータベースに保存することは、セキュリティ上の巨大な脆弱性であり、問題を尋ねるだけです。 –
@RamRaider:無意味です。 '&&'と 'and'は機能的に同一です。 –
が削除されました。 – RamRaider