我有一个像下面这样工作的小网站
- 用户进入登录页面并输入凭据(称为 page1)
- 表单被发布到 page2,它对用户进行身份验证,调用 session_start,然后设置一个会话变量
$_SESSION['somevar']
并重定向到 page3 - 在 page3 上,我检查是否
$_SESSION['somevar']
设置了如果不将用户发送回登录页面
代码:
//here's the code on the top of the page3
<?php
session_start();
if (!isset($_SESSION['somevar']))
{
header("Location:http://somesite")
}
...other code follows
问题是虽然这在 FireFox 中有效,但即使使用正确的用户凭据,IE 7 也会继续重定向回 page1 而不是显示 page3 的内容。
请一些指针来解决这个问题?
编辑:一个非常奇怪的解决方案,但它有效。我变了
if (!isset($_SESSION['somevar'])) { header("Location:http://somesite") }
至
if ($_SESSION['somevar'] == '' ) { header("Location:http://somesite") }
IE现在很开心。但我仍然不知道为什么isset
不在 IE 中工作
非常感谢