问题描述
我有一个登录脚本,该登录脚本在localhost上可以正常运行,但是在上载到Web服务器时不起作用。
程序检查用户名和密码是否正确,如果是,则设置会话。 但是,当用户再次重定向到同一页面时,会话将丢失-尽管凭据正确,但用户仍无法登录。这是代码:
<?PHP
session_start();
include ('dbconn.PHP');
$username = $_POST['usernameinput'];
$password = $_POST['passwordinput'];
$result = MysqLi_query($con,"SELECT username,password FROM users WHERE username = '".$username."';");
$hashedpwd = MysqLi_query($con,"SELECT password FROM users WHERE username = '".$username."';");
if (!$hashedpwd) {
printf("Error: %s\n",MysqLi_error($con));
exit();
}
$row = MysqLi_fetch_array($hashedpwd);
if (MysqLi_num_rows($result) != 0 && password_verify($password,$row[0]) == 1) {
$_SESSION['username'] = $username;
header("Location: ".$_SERVER['HTTP_REFERER']);
} else {
header("Location: ".$_SERVER['HTTP_REFERER']."?status=login_fail");
}
?>
有人知道如何解决吗?我认为这可能与Cookie有所欠缺,但是我对PHP的初学者了解太多。我将永远感谢您的帮助。
解决方法
谢谢院长,
答案是使用$ _SESSION ['username']调用会话; 我想保留会话的每个文件的顶部。
出于某种原因,我不必在localhost上执行此操作,但是我猜除非指定,否则会话不会保留在域中。