我在数据库中有一个用户表,每个用户都有一个id,firstname,lastname,username和password属性。
我正在尝试创建一个简单的登录页面,我需要检查输入的密码是否与输入的用户名相符。
我的查询看起来像这样:
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = 'SELECT password FROM users WHERE username = "something"';
$result = $conn->query($sql);
查询应返回指定用户的密码,但我不知道如何获取密码。
$result->fetch_array()
在我的情况下不会返回任何内容。
答案 0 :(得分:2)
你正在考虑这种错误的方式。
无需检索密码,然后在PHP中查询密码。您可以在查询中查询它,看看是否最终得到了一行。
此外,使用预准备语句来防止潜在的恶意用户输入也是明智的。
$sql = 'SELECT id FROM users WHERE username = ? && password = ?';
if ($stmt = $conn->prepare($sql)) {
$stmt->bind_param("ss", $_POST['username'], $_POST['password']); //<-- for example
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows === 1) {
//good login
} else {
//bad login
}
$stmt->close();
} else
die('DB problem...');
答案 1 :(得分:0)
您可以使用:
$sql = "SELECT * FROM users WHERE username = '$field_name'";
$result = $conn->query($sql);
if($rowData = $result->fetch_assoc()){
$username = $rowData['username'];
$password = $rowData['password'];}
然后你使用session