> пользователя выкидывает на какую-то левую страницу, которой > уже давным-давно нет, и он получает "The page cannot be > displayed".
вот это настораживает.
Возможно, скрипт после логина редиректит на некоторую страницу. Эта же страница имела глупость прописать у себя жёсткий Last_Modified или Etag или еще какие похуже опции кеширования. После чего изменилась и стала работать нормально.
Вобщем, размышления на тему, сложно больше сказать без самой страницы.
Ситуация следующая:
Есть сайт, сделан на PHP + MySQL - пользователи сначала регистрируются, далее login/psw, после логона можно идти дальше. Работает нормально на Opera, FireFox, Netscape.
При работе с Internet Explorer наблюдается такой эффект:
Если дата - установлена правильно, то все OK.
Но если передвинуть дату хотя бы на один день вперед, то после ввода "login/psw" - авторизация не проходит, и пользователя выкидывает на какую-то левую страницу, которой уже давным-давно нет, и он получает "The page cannot be displayed".
Поскольку клиенты сайта находятся не в России, дата/время (time zone !?) настроены как попало, то у некоторых буржуинов - авторизация не проходит.
Вопросы:
1) Правильно ли такое поведение IE?
2) Может ли вообще неверная установка даты влиять на авторизацию?
3) Можно ли определить, что на клиентской машине дата установлена неверно и дать более-менее разумное предупреждение? Нужен ли для этого JavaScript?
Если кто-нибудь сталкивался, и знает в чем грабли - буду бесконечно благодарен.
Извиняюсь за несколько, может быть, путанное объяснение, не проснулся ещё :)
Спасибо!
возможно, проблема в кешировании15.06.06 18:28 Автор: paganoid Статус: Member
> пользователя выкидывает на какую-то левую страницу, которой > уже давным-давно нет, и он получает "The page cannot be > displayed".
вот это настораживает.
Возможно, скрипт после логина редиректит на некоторую страницу. Эта же страница имела глупость прописать у себя жёсткий Last_Modified или Etag или еще какие похуже опции кеширования. После чего изменилась и стала работать нормально.
Вобщем, размышления на тему, сложно больше сказать без самой страницы.
Да, редирект есть15.06.06 18:57 Автор: Neznaika <Alex> Статус: Member
> Возможно, скрипт после логина редиректит на некоторую > страницу. Эта же страница имела глупость прописать у себя > жёсткий Last_Modified или Etag или еще какие похуже опции > кеширования. После чего изменилась и стала работать нормально. > Точнее - был.
Хочу его сейчас убрать, в надежде - что все само сабой самоуничтожится :)
Напомни, пожалуйста – кто именно прописывает опции Last_Modified / ETag?
И что надо сделать, чтобы их не было.
Спасибо!
Last-Modified шлется скриптом... чтобы не было клиентского...19.06.06 09:50 Автор: nscs Статус: Незарегистрированный пользователь
> > Возможно, скрипт после логина редиректит на некоторую > > страницу. Эта же страница имела глупость прописать у > себя > > жёсткий Last_Modified или Etag или еще какие похуже > опции > > кеширования. После чего изменилась и стала работать > нормально. > > > Точнее - был. > Хочу его сейчас убрать, в надежде - что все само сабой > самоуничтожится :) > > Напомни, пожалуйста – кто именно прописывает опции > Last_Modified / ETag? > И что надо сделать, чтобы их не было. > > Спасибо!
Last-Modified шлется скриптом... чтобы не было клиентского кеширования пропишите header('Last-Modified: текущая_дата_по_Гринвичу'). E-tag, как и If-Modified-Since - служит для клиентского кеширования и отправляются браузером к скрипту. По идее они не должны отправляться если Вы пропишите правильно Last-Modified. Может быть Вам будет полезна статья, посмотрите - http://www.controlstyle.ru/articles/programming/text/if-mod-since-php/print/
Спасибо большое. Посмотрю.19.06.06 16:02 Автор: Neznaika <Alex> Статус: Member
Редиректь на страницу с другим адресом - это самый простой...16.06.06 10:19 Автор: paganoid Статус: Member Отредактировано 16.06.06 10:37 Количество правок: 1
> > > Точнее - был. > Хочу его сейчас убрать, в надежде - что все само сабой > самоуничтожится :)
Редиректь на страницу с другим адресом - это самый простой выход.
Если же нужен почему-то тот же адрес , тооо... раньше надо было думать :) Теперь страница лежит мёртвенькой в кеше браузера, надо чистить на местах. Если внутрь страницы вставлялся кокойнить внешний джаваскрипт, можно попробовать промыть кишочки вставив костыль типа:
if (location.href='my.owfull.page.html' && getcookie('somecookie')<>'refreshed') { setcookie('somecookie','refreshed') location.reload();
(энто псевдокод, требует осмысления и реализации. Возможно еще через HttpRequest с хедером no-cache можно сделать запрос на клиенте)
И то, костыль не без проблем (в виде возможного бесконечного рефреша и т.п.)
> Напомни, пожалуйста – кто именно прописывает опции > Last_Modified / ETag?
как кто? если страница PHPшная - код PHPшный, ищи вызовы ф-ии header(). Если статическая - сервер прописывает. Если есть кеширующее прокси посерёдке, оно может добавлять свои хедеры.
Cейчас как раз и сделан редирект на страницу с другим...16.06.06 13:13 Автор: Neznaika <Alex> Статус: Member
Cейчас как раз и сделан редирект на страницу с другим адресом.
Это работает без проблем, если дата установлена правильно.
Но если передвинуть дату хотя бы на один день вперед -
то редирект идет на страницу, которой нет, и в результате получаем "The page cannot be displayed".
Одним словом, вопрос такой -
Может ли неверная установка даты влиять на авторизацию?
И если да - то можно ли как-нибудь определить, что на клиентской машине дата установлена неверно?
Спасибо!
Есть мнение что IE какал на modified-date при дефолтовых...15.06.06 20:26 Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
Есть мнение что IE какал на modified-date при дефолтовых настройках Tools->Internet Options->Settings
->"Check for newer versions of stored pages - Automatically"
Надо всегда ставить - "Check for newer versions - Every visit to the page"
К сожалению, не помогает.16.06.06 13:03 Автор: Спасибо - классная идея Статус: Незарегистрированный пользователь
> пользователя выкидывает на какую-то левую страницу, которой > уже давным-давно нет, и он получает "The page cannot be > displayed". > > Поскольку клиенты сайта находятся не в России, дата/время > (time zone !?) настроены как попало, то у некоторых > буржуинов - авторизация не проходит.
А может здесь дело не в самом алгоритме авторизации, а во времени жизни страницы, т.е. в настройках сервака?
Сервер не совсем мой, настройки хотелось бы - не трогать15.06.06 19:04 Автор: Neznaika <Alex> Статус: Member
> А может здесь дело не в самом алгоритме авторизации, а во > времени жизни страницы, т.е. в настройках сервака? >
Как ты думаешь, а почему тогда во всех остальных браузерах - работает без проблем?
Скрипт авторизации значит у тебя не правильно работает...сам...15.06.06 17:37 Автор: Skazi Статус: Незарегистрированный пользователь
> Скрипт авторизации значит у тебя не правильно работает...сам писал или откуда то взял? >
1) А что может быть неправильно?
2) Большая просьба - в 2х словах ответить на вопросы из предыдущего поста