我是PHP / MySQL的新手。我正在进行身份验证,但我的代码不允许我进入正确的页面。这就是我所拥有的:
<?php
$username = null;
$password = null;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require_once('database.php');
if(!empty($_POST["username"]) && !empty($_POST["password"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$query = $connection->prepare("SELECT user_id FROM users WHERE user_login = ? and user_password = PASSWORD(?)");
$query->bind_param("ss", $username, $password);
$query->execute();
$query->bind_result($userid);
$query->fetch();
$query->close();
if(!empty($userid)) {
// Stuff happens
} else {
// goes back to the login page
此时,$ userid似乎是空的,因为我一直回到登录页面。 database.php只是连接,我确信这没关系。我还确认表单正确提交了$ _POST [&#34;用户名&#34;]和$ _POST [&#34;密码&#34;],上面的代码创建了$ username和$ password。我可以回应那些看到正确的结果。数据库中的字段名称与SQL语句中的字段名称匹配。但由于某种原因,$ userid是空的。我已经阅读了其他帖子,但我几乎不了解我在做什么,更不用说别人在做什么或解释什么了。我认为这是非常基本的,但它是什么?
答案 0 :(得分:0)
为什么是PASSWORD()?
$query = $connection->prepare("SELECT user_id FROM users WHERE user_login = ? and user_password = ?");
$query->bind_param("ss", $username, $password);
$query->execute();
$query->bind_result($userid);
$query->fetch();
$query->close();