У меня есть небольшой сайт, который работает как показано ниже
- Пользователь заходит на страницу входа и вводит учетные данные (назовите это page1)
- Форма публикуется на странице 2, которая аутентифицирует пользователя, вызывает session_start, а затем устанавливает переменную сеанса с помощью
$_SESSION['somevar']
и перенаправляет на страницу 3
- На странице 3 я проверяю, установлен ли
$_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 продолжает перенаправлять обратно на страницу 1 вместо отображения содержимого страницы 3.
Какой-нибудь указатель, пожалуйста, чтобы решить это?
РЕДАКТИРОВАТЬ: очень странное решение, но оно работает. Я изменил
if (!isset($_SESSION['somevar'])) { header("Location:http://somesite") }
до
if ($_SESSION['somevar'] == '' ) { header("Location:http://somesite") }
и IE теперь счастлив. Но я все еще не понимаю, почему isset
не работает в IE
Большое спасибо