Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $_SERVER['HTTP_REFERER'] в Internet Explorer
 
 автор: Хулиган   (19.09.2006 в 13:24)   письмо автору
 
 

На сайте сделано так: при попытке зайти на сайт, минуя index.php, пользователя принудительно выкидывает на index.php. В начале страниц (кроме index.php) стоит:

if (! isset($_SERVER['HTTP_REFERER']) ){
        Header("Location:http://www.site.ru/");
    }


Это работает во всех трех браузерах (FF, Opera, IE).
Но есть одна страница forms.php, на которой есть кнопка "Отмена" с кодом window.location.href='/auto.php?c=all'; Перейдя на эту страницу, пользователь может по нажатию кнопки "Отмена" вернуться на страницу auto.php.
Так вот этот возврат работает только в FF и Opera. Вернее сам возврат через window.location.href работает нормально, а вот приведенный в начале код в случае с ИЕ почему-то считает, что $_SERVER['HTTP_REFERER'] не установлен и выкидывает меня ещё дальше, на index.php.

Почему в ИЕ не устанавливается $_SERVER['HTTP_REFERER'] по window.location.href, и как можно победить это?

Спасибо.

   
 
 автор: Unkind™   (19.09.2006 в 14:49)   письмо автору
 
   для: Хулиган   (19.09.2006 в 13:24)
 

Если не выходит получить рефферер - то ниче не сделаешь.
Лучше используйте <a href="javascript:history.back(1)">Отмена</a><br />

   
 
 автор: Unkind™   (19.09.2006 в 14:50)   письмо автору
 
   для: Хулиган   (19.09.2006 в 13:24)
 

-

   
 
 автор: cheops   (19.09.2006 в 18:26)   письмо автору
 
   для: Хулиган   (19.09.2006 в 13:24)
 

К сожалению победить IE в этом плане нельзя... Реферер в этом плане совершенно не удобен, лучше заводите сессию и устанавливайте флаг в ней на первой странице, если флага нет, перебрасывайте пользователя в начало - это понадёжнее будет на порядок. Правда у вас роботоы поисковых систем и пользователи с отключёнными cookie дальше первой страницы не смогут пройти.

   
 
 автор: Хулиган   (19.09.2006 в 22:20)   письмо автору
 
   для: cheops   (19.09.2006 в 18:26)
 

В принципе history.back функционирует нормально. REFERER вроде устанавливается во всех броузерах. Или могут быть подводные камни?
С session_id у меня сделан счетчик посетителей, можно добавить булево поле. Правда я не понял, какое отношение куки имеют к сессиям? Или механизм куков используется при передаче session_id ?

   
 
 автор: cheops   (19.09.2006 в 23:09)   письмо автору
 
   для: Хулиган   (19.09.2006 в 22:20)
 

>Или механизм куков используется при передаче session_id ?
Да SID-сессии часто передаётся через cookie, чтобы не засорять параметры адресной строки.

   
 
 автор: Unkind™   (19.09.2006 в 23:33)   письмо автору
 
   для: cheops   (19.09.2006 в 23:09)
 

-

P.S. Да что такое. Вот бы удаление пред. сообщения было бы))

   
 
 автор: Хулиган   (20.09.2006 в 10:07)   письмо автору
 
   для: Unkind™   (19.09.2006 в 23:33)
 

Ясно, значит пока сделаю с history.back, как не требующей куков. Если что-то не так, тогда с сессиями придётся делать.
Спасибо всем.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования