我在登录过程中遇到困难。根据数据库,用户名和密码都是正确的。数据库中的字段名称也是正确的。我正在使用 PDO。当我点击登录时,我总是重定向到 else 括号。请帮助我,谢谢。
<?php
session_start();
include 'config.php';
if ($_POST) {
$user = $_POST['user'];
$pass = md5($_POST['pass']);
$query = "SELECT * FROM useraccounts WHERE USER_NAME=? AND USER_PASSWORD=?";
$stmt = $conn->prepare($query);
$stmt -> bindParam(1,$user);
$stmt -> bindParam(2,$pass);
$stmt -> execute();
$num = $stmt->rowCount();
if ($num>0) {
session_start();
$_SESSION['user']=$user;
$_SESSION['active']=true;
header('location:frontpage.php'); //Must be the destination
echo "SUCCESS";
}
else{
header('location:login.php'); // <-- I'm always directing here
echo "FAILED";
}
}
else{
header('location:login.php');
echo "FAILED";
}
最佳答案
如果您被重定向到 login.php 页面,请记住以下几点:
1) 除非您通过 POST 请求访问该页面,否则您将始终获得登录页面。您的 if 语句如下所示:
如果($_POST){
因此,如果您直接从浏览器访问该页面,您将被直接重定向到 login.php 页面。
2)如果您从第二个 else 语句重定向,就像您在评论“<--我总是指向这里”中所说的那样,那么您的查询不会返回任何结果。你的查询看起来不错。因此,请检查您传递的凭据。确保它与数据库匹配。
关于php - 我的网站登录过程遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44220380/