当用户使用正确的信息登录时,应启动会话并设置cookie。然而它似乎不起作用,根本不起作用。我session_start()
位于页面的最顶部,但似乎忽略了$_SESSION
变量,因为当我执行var_dump($_SESSION['username'])
时,它会返回NULL
。
我的代码:
$username = $kunaiDB->real_escape_string($_POST["uname"]);
$password = $kunaiDB->real_escape_string($_POST["pword"]);
$kunaiLoginQuery = "SELECT * FROM kunai_users WHERE user_name = '".$username."'";
$kunaiLoginQueryResult = $kunaiDB->query($kunaiLoginQuery);
$controlhash = $kunaiLoginQueryResult->fetch_assoc();
$db_pw_res = $controlhash["user_pw"];
if(password_verify($password, $db_pw_res)) {
$checkBlock = $kunaiDB->query("SELECT * FROM kunai_users WHERE user_name = '".$username."' AND user_locked = '1'");
if($checkBlock->num_rows >= 1) {
echo "Your account has been locked by a moderator. If you want it to get lifted please appeal here.";
} else {
$userRow = $kunaiLoginQueryResult->fetch_array();
$dbid = $userRow["user_id"];
$dbuser = $userRow["user_name"];
$_SESSION['id'] = $dbid;
$_SESSION['username'] = $dbuser;
$activeUser = $_SESSION['username'];
setcookie('active', $activeUser, time() + 60*60*1);
}
} else {
echo '<div class="loginerror">Incorrect login details!</div>';
}
登录时我没有错误,即使我使用
error_reporting(E_ALL);
ini_set('display_errors', 1);
此时我迷路了,我需要一些帮助。