Вход на сайт Я работаю над функциями, как и ожидалось, на моем локальном компьютере, но происходит сбой на удаленном сервере, но ТОЛЬКО в Internet Explorer. Главное, что он работает в IE локально, а не на удаленной машине.
Что в мире может вызвать это? Я прошел по коду на удаленной машине и вижу, что введенные значения входа проверяются в базе данных, они обнаруживаются и затем вызывается функция входа в систему. Это устанавливает две переменные $ _SESSION и перенаправляет на главную страницу администратора. Однако только в IE (а не при запуске на локальном компьютере ... это ключевой момент) переменные $ _SESSION отсутствуют, когда вы попадаете на главную страницу администратора. var_dump($_SESSION)
дает мне то, что я ожидаю, в каждом браузере, когда я запускаю это в своей локальной среде и в каждом браузере, кроме IE 6, 7 и 8, при запуске на удаленном сервере (где я получаю нулевое значение, как будто ничего не установлено за $ _SESSION).
Это действительно ставит меня в тупик, поэтому любой совет приветствуется.
Для примера ... в IE, запустить локально, var_dump дает мне:
array
'Username' => string 'theusername' length=11
'UserID' => string 'somevalue' length=9
Запуск на удаленном сервере (только IE ... отлично работает в других браузерах) var_dump дает мне:
array(0){}
Код (минимальный пример ... хотя на самом деле пример кода не нужен с этой проблемой):
$User = GetUser($Username, $Password);
if ($User->UserID <> "") { // this works so we call Login()...
Login($User); // this also works and gives expected results. on to redirect...
header("Location: index.php"); // a var_dump at index.php shows that there is no session data at all in IE, remotely.
} else {
header("Location: login.php");
}
function Login($data) {
$_SESSION['Username'] = $data->Username;
$_SESSION['UserID'] = $data->UserID;
// a var dump here gives the expected data in every browser
}
РЕДАКТИРОВАТЬ: Решено это. Дело в том, что доменное имя на тестирующем сервере было подчеркнуто. Понятия не имею, почему, и сейчас у Google нет на это времени, но проблема заключалась в подчеркивании, названном что-то вроде some_client.ourcompany.com. Должен любить Internet Explorer ... это как пассивный агрессивный сотрудник, которого вы просто не можете избежать.