Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аутентификация, кеширование страницы 
:(
    Опции темы
Zzet
Дата 14.12.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



здравствуйте! есть механизм аутентификации пользователя для внутр сети. при правильной аутентификации создается сессия, которая живет до нажатия пользователем кнопки выйти. после этого хоть нажатие на кнопку в браузере обновить, хоть переход на предыдущую страницу - выкидывает на пустую страницу. но если вход был правильный потом выход правильный при новом запуске приложения вход на страницу пользователя происходит автоматически, без ввода пароля и логина. это ошибка. подумал что проблема в кешировании страницы, попытался устранить глюк следуя шагам, указанным на сайтах http://webo.in/articles/all/http-caching/
http://www.codenet.ru/webmast/php/caching.php#cache
http://xpoint.ru/forums/programming/server...read/4908.xhtml
но, к сожалению воз и ныне там. что с этим делать?

Добавлено через 3 минуты и 18 секунд
да, механизм аутентификации, создан без помощи нтмл-тегов, он получает ответы о правильности непосредственно от браузера и сервера и через бд мускл. т.е. в коде аутентификации есть прописаны только вызовы заголовков 
Код

 header('WWW-Authenticate: Basic realm="rrrrrrrrrrrrrrrr"');
        header('HTTP/1.0 401 Unauthorized'); 

PM MAIL   Вверх
capitan
Дата 14.12.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



Цитата(Zzet @ 14.12.2009,  15:09)
при правильной аутентификации создается сессия, которая живет до нажатия пользователем кнопки выйти.... если вход был правильный потом выход правильный

Как создается сессия? Что значит выход правильный? Как он происходит?
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 14.12.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Казалось бы, при чем здесшь кэширование...
PM MAIL   Вверх
Zzet
Дата 14.12.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



аутентификация верна если логин и пароль верный - здесь загружается рабочая область пользователя и сессия равна его ид, при завершении работы пользователь должен нажать ссылку выйти(здесь происходит session_destroy();). и вот тут возникает проблема - пользователь закрывает браузер, идет занимается своими делами, снова открывает браузер, прописывает адрес в строке запроса браузера и здесь снова должна произойти аутентификация- ан нет!, пользователь снова попадает на свою рабочую область. а если второй раз с его рабочего места зайдет другой пользователь и наделает неприятностей?
2Ипатьевпри чем здесшь кэширование? может и не в кешировании дело? тогда в чем?
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Цитата

здесь происходит session_destroy()

зачем?

PM MAIL   Вверх
Zzet
Дата 14.12.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



и     unset($PHP_AUTH_PW);
        unset($PHP_AUTH_USER); и session_destroy() не проходят
зачем? - чтоб пользователь аутентифицировался заново.
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Eсли вы не заметили, то после session_destroy() пользователю НЕ приходится аутентифицировался заново

в общем, если вы не понимаете, что делаете, то лучше сделать "с помощью нтмл-тегов"
PM MAIL   Вверх
Zzet
Дата 14.12.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Ипатьев я понимаю что делаю, иначе бы не спрашивал. спрашивая надеялся на совет, через теги делать не могу(требование в тз smile )
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Цитата(Zzet @  14.12.2009,  20:04 Найти цитируемый пост)
 я понимаю что делаю

о, да. unset($PHP_AUTH_PW); говорит об этом очень красноречиво

Не могли бы вы скопировать сюда место в ТЗ, в котором написано про то, что надо сделать "без помощи нтмл-тегов"?
Возможно, имеет место какое-то недоразумение.


PM MAIL   Вверх
Zzet
Дата 14.12.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



у меня инструкция распечатанная с принтскринами подобного приложения заказчик хочет так же.то есть в експлорере это окошко с ключиками, в виндовс 7 с цветочком красным и т.д - эти окно стандартные при вызове заголовков. unset($PHP_AUTH_PW); пробую хоть что-то.
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



да  не против. пробуйте.
только не говорите тогда, что что понимаете.  выберите что-то одно.

PM MAIL   Вверх
Zzet
Дата 14.12.2009, 21:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Ипатьев я пришел за помощью, а не одобрением. если есть что сказать по делу - говорите!

Добавлено через 42 секунды
и каждый суслик в поле агроном
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Я написал. Два раза. Я то-то не заметил повышенного интереса к техническим вопросам. 
Вас больше интересовало объяснить всем, как много вы понимаете.
PM MAIL   Вверх
Zzet
Дата 14.12.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



вовсе нет. технический вопрос - как же тогда убить сессию в данном случае(если session_destroy() и unset($PHP_AUTH_PW))? что писать вместо PHP_AUTH_PW? уже пробовал $_SERVER['PHP_AUTH_USER']  и $_SERVER['PHP_AUTH_PW'] - все без изменений?

Добавлено через 1 минуту и 38 секунд
если Вы(Ипатьев) считаете что проблема в том что я чего-то не знаю, будьте добры, скажите конкретно в чем беда?

Добавлено через 1 минуту и 59 секунд
и что нужно знать
PM MAIL   Вверх
Ипатьев
Дата 14.12.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 0
Всего: 37



Знать нужно очень много. протокол НТТР в целом и механизм (несложный) НТТР авторизации в частности. Чтобы хотя бы не возникало желания делать unset(PHP_AUTH_*)

Технический вопрос - зачем убивать сессию. И вообще, и - особенно - в данном конкретном случае. Это раз.

Техническая ремарка: Если пользователь ставит галочку "запомнить пароль" в этом окошке, то он входит точно так же, несмотря вообще ни на какие наши желания.
Техническая рекомендация вам придется очень попотеть, чтобы сделать этого франкенштейна из сессий и НТТР авторизации. Поэтому я настоятельно рекомендую сделать по-человечески, на одних сессиях. Иначе может совсем не получиться. Только если придет Питлорд и все распишет smile



PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0828 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.