Авторизация-сессии-куки-IE : проблема

vada

Новичок
Авторизация-сессии-куки-IE : проблема

Исходные данные: локалный комп, винХРsp2, апач, пхп 4.3.9 (как денвер). Авторизация на сайте сессиями по схеме: переход на страницу авторизации->опознание->если да, регистрация сессионных переменных и реферер обратно.

Проблема: Мозиллы, опера, нетскейп отрабатывают нормально, ИЕ6 - нет, т.е. при возврате на странице должно быть приветствие, а вместо этого - ...

Результаты вскрытия:

1) [в ИЕ, в локалке] при реферере SID обратно не передается, при этом в файле "прежней" сессии прописываются авторизационные переменные, плюс создается новый пустой сесс-файл и в форме, в странице, на которую прошел возврат после авторизации (в данном случае - неуспешной), прописыватся новый SID этого сесс-файла.

2) В Мозилле, опере, нетскейпе SID передается и кукой, и формой, МозиллаФокс передает только кукой. В ИЕ - только формой

3) После размещения скриптов у провайдера ИЕ глючить ПЕРЕСТАЛО, а SID стал передаваться и постом, и кукой

4) Ковыряние в настройках ИЕ на предмет отмены возможных запретов кук ничего не дало.

5) Сравнение phpinfo() локального сервера и повайдерского показало идентичность настроек в части сессионных параметров, сравнить php.ini возможности не имею

6) На локалке, на другом сайте, у которого аналогичная, но не идентичная система авторизации (тоже моя), ИЕ трабатывает нормально.

Традиционно, есть подозрение, что решение где-то рядом и простое :) , но из описанного у меня упорно не складывается картина, курю уже второй вечер подряд, очень хочется разобраться, может кто-то натолкнет на мысль.
 

Фанат

oncle terrible
Команда форума
при чём здесь вообще реферер?
и что такое "при реферере SID не передается"?
Нельзя ли привести эту фразу в вид, чуть более отвечающий основам технологии?

-~{}~ 15.05.05 00:41:

реферер, вообще, в этой схеме - вещь абсолютно лишняя и вредная
 

vada

Новичок
ту Фанат: описываю подробнее.
Что происходит. Имеем страницу сайта (юзер не авторизован), в ХТМЛ-коде формы прописан <input type="hidden" name="PHPSESSID" value="ааа (к примеру)." />.
А на компе, в session.save_path, соответственно, имеем сессионный файл 'aaa'. Послали данные на авторизацию. Авторизация прошла успешно, в файле "ааа" записываются сессионные переменные. Но рядом появляется другой файл "ввв" (без переменных), а страница сайта, на которую "типа, вернул" нас реферер после авторизации, "делает вид, что авторизации не было вообще", поскольку в форме уже сидит <input type="hidden" name="PHPSESSID" value="ввв" />

Кстати, только счас обратил внимание, что оказывается, когда даже просто нажимаю в ИЕ рефреш, в форме, в инпуте прописывается новый номер сессии. Соответственно, создается новый файл. Только для ИЕ.

реферер, вообще, в этой схеме - вещь абсолютно лишняя и вредная
У меня до настоящего случая эта схема нормально работала, и не в одном варианте. Поясни, если нетрудно
 

Фанат

oncle terrible
Команда форума
не работала.
Ты вообще такой вещью, как статистика твоего сайта, интересовался когда-нибудь?
Не приходило в голову посмотреть, сколько посетителей не отдают реферера вообще - он у них пустой? И как в этом слчае работает твоя схема?

Но рядом появляется другой файл "ввв" (без переменных), а страница сайта, на которую "типа, вернул" нас реферер после авторизации, "делает вид, что авторизации не было вообще", поскольку в форме уже сидит <input type="hidden" name="PHPSESSID" value="ввв" />
На этот случай есть специльное пояснение по ссылке, еоторую дал Necromant. Вкратце оно звучит так: Ищите опечатки в своём коде.

-~{}~ 15.05.05 20:52:

Там же, кстати, описан и твой случай. который, ты, правда, несмотря на своё "подробно", так и не описал. Ну да это не важно.
иди, читай, исправляй.
 

vada

Новичок
не отдают реферера вообще - он у них пустой? И как в этом случае работает твоя схема?
при отсутствии реферера - отправлятю на альтрунативную страниц. А еще какие-то мтнусы можешь назвать?

который, ты, правда, несмотря на своё "подробно", так и не описал
Да мне не жалко, но я не представляю, что еще можно добавить к уже описанному

Мне не влом еще раз прочитать и про сессии, и про "на танке". И про ошибку в коде мыслб была, но пока не нашел. Просто меня сильно озадачила ситуация в которой, имхо, просиходят несочетаемые варианты событий. Ну да лядно, все равно - спасибо. Пошел курить дальше:)
 

Фанат

oncle terrible
Команда форума
Ничего несочетаемого.
Все сочершенно закономерно.

просто ты не понимаешь, что делаешь.
И читаешь невнимательно.

Ты так и не написал, как просиходит этот твой "реферер обратно".
 

vada

Новичок
Ты так и не написал, как просиходит этот твой "реферер обратно".
Header("Location: ".$_SERVER['HTTP_REFERER']); - имелось в виду это?


Ничего несочетаемого.
Все сочершенно закономерно.
Возможно, но для меня пока неочевидно, потому и прошу помощи.
Хочу, например, понять, почему, когда я на одном сайте в локалке, сессия куку выставляет, а когда на другом - нет? Сервер-то один.
Хочу понять, почему при одинаковых настройках сессионных параметров в локалке и у провайдера, на одних и тех же скриптах в локалке кука не выставляется, а от провайдера - выставляется.
Хочу понять, почему это происходит только с ИЕ, а для другиз браузеров кука выставляется и тут, и там
В ФАКе по сессиям и на форуме я ответа не нашел.

просто ты не понимаешь, что делаешь
рискну не соласиться
И читаешь невнимательно
это бывает. Если я и впрямь чего-то упустил, прошу ткнуть пальцем. Согласен на экзекуцию:)
 

Фанат

oncle terrible
Команда форума
Header("Location: ".$_SERVER['HTTP_REFERER']); - имелось в виду это?
Да, это. И ты мог не приводить здесь этот код. Я и сам догадался. только от какая закавыка. Ответ нужен на вопрос не мне. А тебе. И этот код пожетому донужен тебе, а не мне.
А мне он не нужен.
Хочу, например, понять, почему, когда я на одном сайте в локалке, сессия куку выставляет, а когда на другом - нет? Сервер-то один.
Хочу понять, почему при одинаковых настройках сессионных параметров в локалке и у провайдера, на одних и тех же скриптах в локалке кука не выставляется, а от провайдера - выставляется.
Хочу понять, почему это происходит только с ИЕ, а для другиз браузеров кука выставляется и тут, и там
Ответ на этот вопрос находится в другом разделе фака - PHP FAQ: Ничего не работает! Что делать???
Удачи.
 

vada

Новичок
К сожалению, вернулся на точку старта.
Про этот документ я тоже помню и люблю:)
Спасибо за пожелание удачи.
И тебе удачи.
 

Фанат

oncle terrible
Команда форума
Ну, я-то на удачу не надеюсь.
Я не задаю на форуме гениальные вопросы "почему мой код не работает". Я выясняю это самостоятельно. правда, для этого приходится не только "помнить" про документ, но и выполнять то, что там написано.

На точку старта ты не вернулся.
Твой вопрос поменялся с "почему на работают сессии" на "почему не ставится кука." а это две большие разницы.

но, конечно же, всё это я говорю зря.
мне не впервой встречатьсня на форуме с людьми, которых совершенно не волнует решение собственных проблем. И которые относятся к рекомендации прочитать фак, как заданию зануды училки - лишь бы отбрехаться. "Читал, Леонид Ильич! ДВА раза!". Не понимаю - зачем врать-то? Какой в этом толк? Разве это мне надо проболему решить? Не понимаю...
 

vada

Новичок
ту Фанат:
1. Мое пожелание удачи - это не завуалированный сарказм, а просто пожелание удачи. Благодарность за то, что потратил на меня время.
2. Свои проблемы я привык прежде всего решать сам. И вопросы на форум задаю только после того, как покручу проблемы с разных сторон. Просто бывают ситуации, что упускаешь какую-то очевидную вещь. Возможно, это как раз тот случай. И я не пытаюсь переложить решение моей проблемы на участников форума, а рассчитываю, что вдруг кто-то сталкивался с похожей ситуацией и даст более конкретную рекомендацию. И самостоятельно пытаться решать ее не перестану.
3. Как я уже писал, сходить в ФАК мне не западло и слова "на танке" не вызывают у меня чувства высокомерия.


ту SiMM: про REFERER я не понял, в каком случае полагаться? При редиректе на прежнюю страницу? Но это удобно, а если его нет - пожалуйста, специально выделенная страница. Если ты про мою ситуацию в целом, то я уже понял, что реферер тут ни при чем. Проблема возникает уже на свежеоткрытой странице.

Вечером продолжу битву :)
 

Фанат

oncle terrible
Команда форума
vada
С ситуацией "сессия теряется при локейшене" сталкивались все.
И она описана в факе. по сессиям.
С ситуацией "куки не работают" сталкивались все. И узнать - почему не ставится, можно толтько путём отладки. Поскольку вариантов может быть миллион. Кука ставится, но не принимается браузером. Кука ставится, но с неправильными параметрами. Кука не ставится из-за преждевременной отправки заголовков. И так далее. Как это посмотреть (чтобы хотя бы узнать - посылает ли куку пхп) - написано в факе, который тебе дал Симм. Ты хороший парень. Но уж очень невнимательный.
 

vada

Новичок
Вчера так и не добрался до компа, а сегодня глянул свежим взглядом и пришло озарение:)

Но уж очень невнимательный
Да уж, показал себя во всей красе...

Проект, начатый на одном компе, изначально имел имя бла-бла. Будучи перенесенный на другой комп, он стал уже бла_бла (рука дрогнула:)), что, по сути, неправильно, но я тогда махнул на это рукой, поскольку все работало, в т.ч. и в ИЕ5.5. Недавно сделал апргрейд и переставил систему. Видимо ИЕ6 более строг к таким вещам, вот и отказывался принимать куку при наличии в имени подчеркивания. А я уже успел привыкнуть к этому имени. У провайдера, соответственно, все работало, потому что там домен нормальный.

Кстати, уже посткоитум, нашел-таки прецедент на форуме (самый последний пост в треде) http://phpclub.ru/talk/showthread.php?s=&threadid=24202&perpage=20&highlight=подчеркивание&pagenumber=2

Всем спасибо
 
Сверху