一直在试图弄清楚为什么这不起作用。由于所用设备上的会话存在问题,因此使用Cookie制作低安全性登录系统。设置的cookie可以独立运行,但是在脚本中没有正确设置,或者在auth脚本中没有正确读取。另外,在设置cookie之后,它不在浏览器中。想法?
登录
<?php
//If passwords match, a cookie is created
if ($pw = $hashedpw) {
$memberID = "1221"; //Pulled from DB
setcookie('MDADMIN_SESS_ID',$memberID,'0','', '.somewhere.com');
header('Location: http://somewhere.com/secure_page.php');
}
?>
验证
<?php
//Verify that cookie is present
$cookie = $_COOKIE['MDADMIN_SESS_ID'];
if(!isset($cookie)) {
header("Location: http://somewhere.com/failed.php");
exit();
}
?>
的过程如下:登录表 - >登录脚本 - >安全网页(如果密码匹配) - >验证脚本检查(通过包含) - >如果cookie不存在,则重定向至失败登录。运行时,即使登录脚本正确指向安全页面(成功登录),它也始终默认为不存在该cookie。
考虑到您已经在浏览器上工作了,请尝试给cookie更长的过期时间。 0应该在浏览器会话结束时关闭,但可能会在下一页之前删除它(作为某种安全措施)。使用`time()+ 3600`或其他东西,看看是否有帮助。 – 2011-01-06 15:52:59
不是一个坏主意,谢谢!尝试处理旧版Blackberry浏览器,这是此页面的唯一预期用户代理。 – NightMICU 2011-01-06 16:13:06