我有一个通过 php 会话进行身份验证的登录系统。我的客户说,由于我已将网站移至新服务器,因此登录失败。但只有当他使用 IE 8 时。我一直无法复制这些问题。
更奇怪的是,这一切都在以前的主机上运行。我不知道这是浏览器问题、服务器更改还是其他问题。
有什么已知问题吗?我认为这可能是标题(“位置:”)问题,但它似乎在以前的主机上工作。
任何帮助表示赞赏
登录代码是这样的(它不断地将我的客户端返回到index.php?无效,即使他说他正在输入正确的登录详细信息并且我能够毫无问题地访问。
<?php
require('includes/functions.php');
require('includes/db.php');
$user=clean($_POST[user]);
$pass=clean($_POST[pass]);
$qry="SELECT id FROM table WHERE userfield='$user'
AND passwordfield='".md5($pass)."'";
$result=mysql_query($qry);
if(mysql_num_rows($result)>0) {
//Login Successful
//Regenerate session ID to
//prevent session fixation attacks
session_start();
session_regenerate_id();
$result=mysql_fetch_assoc($result);
$_SESSION['USER']=$result['id'];
//Write session to disc
session_write_close();
header("location: success.php");
exit();
}
header("location: index.php?invalid");
?>
是的,IE8 在会话 cookie 方面存在这个问题,尤其是在使用重定向时。尝试放置session_set_cookie_params(0);
在启动会话之前 - 这将确保会话 cookie 在浏览器关闭之前不会过期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)