【发布时间】:2015-10-22 22:53:56
【问题描述】:
当我点击提交时,输入验证有效,但即使我正确输入了存储在数据库中的用户名和密码,考虑到哈希值,但我得到的只是错误消息告诉我组合不正确。
这是我的登录脚本:
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($_POST['submit']) === true) {
$login = login($username, $password);
if (empty($username) === true || empty($password) === true) {
$errors[] = "Please fill in all fields";
} elseif ($login === false) {
$errors[] = "That username and password combination is incorrect";
} else {
$_SESSION['login'] = $login;
echo 'Logged in';
}
}
下面是函数:
function login($username, $password) {
global $conn;
$query = "SELECT userId FROM users where userName = '$username' AND userPass = '$password'";
$result = mysqli_query($conn, $query);
$row_count = mysqli_num_rows($result);
if ($row_count >= 1) {
return $query['userId'];
} else {
return false;
}
}
【问题讨论】:
-
是的还是不行:/
-
你为什么还有getUserId函数?您根本没有使用该信息。我的意思是你是,但你稍后再打电话。只需返回 $query['userId']
-
不应该是
$user_id = $get_user_id['user_id'];是$user_id = $get_user_id['userId']; -
@AndrewWilson 不会返回该值,因此当我设置会话时,该值是供以后使用的用户 ID
-
@SamLane 是的,但您不是在验证过程中要求提供相同的信息吗?
标签: php database mysqli associative-array