Сессия PHP не работает с IE

Я нашел проблему. Там должен быть тот же пользователь и пароль в другом домене, который настроен на загрузочном сервере.

14
задан CSchulz 15 June 2012 в 14:05
поделиться

10 ответов

Я думал, что некоторые люди могли бы найти решение этой проблемы интересным. Скрипач, конечно, помог здесь. Благодаря Скрипачу я видел, что, на самом деле, поражал страницу main.php (таким образом установка переменной сеанса спустя моменты после установки его на целевой странице), но сервер принимал значение по умолчанию там после получения 302 на корне сайта. Это все происходило тихо в фоновом режиме, и прежде чем мой onload = "" JavaScript работал.

Таким образом, я был уверен, что что-то на тех страницах вызывало ошибку, но не катастрофическую.

вот: <img src= "" >

IE чертовски отсутствовал о пробеле src атрибут и удар корня сервера и установка по умолчанию для подкачки страниц основной. Я не полностью понимаю механику, происходящую здесь. Я также не понимаю, является ли это то, как IE, как предполагается, ведет себя (это - уродливый тег img, в конце концов), или нет. Действительно ли это - ошибка?

3
ответ дан 1 December 2019 в 05:59
поделиться

Проверьте название машины сервера. IE имеет проблемы с названиями машины, которые содержат '-' или '_' - они не могут поддержать сессию! У меня была эта проблема дважды в прошлом, и всегда мне требуются недели для выяснения, и я потрясен, IE не зафиксировал его.

Просто переименуйте машину, чтобы не иметь никаких странных символов! Можно получить его работа, если Вы просто используете IP-адрес сервера в URL для тестирования.

31
ответ дан 1 December 2019 в 05:59
поделиться

IE имеет проблемы cookie с, он обрабатывает iFrames, которые, возможно, вызывая сессию выпускают Вас упоминание, смотрят на эти ссылки

http://adamyoung.net/IE-Blocking-iFrame-Cookies

http://gathadams.com/2007/06/25/how-to-set-third-party-cookies-with-iframe-facebook-applications/

http://nileshtrivedi.in/blog/2008/09/01/iframe-cookies-and-internet-explorer/

10
ответ дан 1 December 2019 в 05:59
поделиться

Попытайтесь тестировать страницу при использовании своего рода контрольного прокси (я использую Скрипача), и посмотрите, какие страницы браузер запрашивает. Это могло бы дать Вам некоторый ключ к разгадке того, что продолжается.

Кроме того, попытайтесь получить запросы/ответы от различных браузеров и посмотрите то, что IE делает по-другому (порядок запросов, содержание запросов?).

Для точного определения проблемы можно ли переписать код, не используя СЕССИЮ (это упоминается в одном из других ответов)? Возможно, IE получает доступ к страницам в другом порядке, чем другие браузеры? Возможно, это запрашивает основную страницу несколько раз, которая означает, что var сессии установлен на "основной"? Без переменных сеанса страницы не будут влиять на состояние друг друга.

9
ответ дан 1 December 2019 в 05:59
поделиться

Если я понимаю это правильно, Вы пытаетесь использовать переменную сеанса для передачи данных от страницы до страниц в iframes на той странице? Это не кажется хорошим способом пойти об этом - почему не только передают ПОЛУЧИТЬ переменную в iframe URL т.е.? current_page=special1. Я думал бы, что это будет более надежно, поскольку это не полагается на состояние сеанса.

Помните также, что переменные сеанса будут тем же для нескольких страниц того же сайта, которые открыты на ПК пользователя (например, на нескольких вкладках), который мог вызвать нечетное поведение.

0
ответ дан 1 December 2019 в 05:59
поделиться

Данные сессии хранятся на стороне сервера, не клиенте. Я проверил бы другие страницы, где это значение будет установлено.

0
ответ дан 1 December 2019 в 05:59
поделиться

У меня была такая же проблема с ie7, и вот что я делаю:

Если у вас есть эта проблема с использованием IIS или Apache в Windows Server, посмотрите URL-адрес, на который вы перенаправляете его должен быть написан так же, как URL-адрес, на котором вы были до перенаправления.

Например: site.com/ страницы /index.php перенаправление на site.com/ Страницы /index2.php приведет к потере сеанса в IE7, потому что в Pages заглавная буква.

0
ответ дан 1 December 2019 в 05:59
поделиться

Может быть, это Session.cookie_Lifetime . Я столкнулся с той же проблемой. Я обновил Session.cookie_Lifetime: 4500 - session.Cookie_Lifetime: 0 . Это означает, что файл cookie сеанса никогда не истекает, пока браузер не выключится.

0
ответ дан 1 December 2019 в 05:59
поделиться

В большинстве случаев этой строки php в начале файла будет достаточно:

header('P3P: CP=”NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM”');

Если это не так, для IE7 вы также можете попробуйте:

header('P3P: CP=”NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM”');

header('Set-Cookie: SIDNAME=ronty; path=/; secure');

header('Cache-Control: no-cache');

header('Pragma: no-cache');

И если это не сработает для IE6, вы можете использовать параметры GET для идентификатора сеанса:

header('location: land_for_sale.php?phpSESSID='.session_id());
3
ответ дан 1 December 2019 в 05:59
поделиться

У меня была эта проблема, и это было связано с отсутствием даты на моем ящике разработчика. Firefox не возражал, IE и Chrome видели, что сеанс истек, как только он был установлен.

1
ответ дан 1 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: