Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблемы с $_SERVER["HTTP_REFERER"]
Но почему-то условие не срабатывает и постоянно переходит на index.php
В чем может быть проблема?
dubasua
Отправлено: 30 Ноября, 2012 - 06:53:22
Посетитель
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
$_SERVER["HTTP_REFERER"] не будет работать в include, только на первой странице. Если Вы подключаете файл include, и там вызываете $_SERVER["HTTP_REFERER"], он будет пустой.
quinlena
Отправлено: 30 Ноября, 2012 - 06:54:47
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
dubasua пишет:
$_SERVER["HTTP_REFERER"] не будет работать в include, только на первой странице. Если Вы подключаете файл include, и там вызываете $_SERVER["HTTP_REFERER"], он будет пустой.
Файл не подключается include! Это просто входная страница, и в ней это поле.
dubasua
Отправлено: 30 Ноября, 2012 - 06:57:40
Посетитель
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
А исходный код смотрели. Что там выводит?
quinlena
Отправлено: 30 Ноября, 2012 - 06:59:22
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
dubasua пишет:
А исходный код смотрели. Что там выводит?
Перед тем, как жму "Вход" в поле сохраняется нужный адрес
avtor.fox
Отправлено: 30 Ноября, 2012 - 07:22:47
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
quinlena
Распишите структуру (вход, проверка, редирект). Приведите код входа и прочее. И всё время смотрите входные данные.
quinlena
Отправлено: 30 Ноября, 2012 - 07:29:09
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
avtor.fox пишет:
quinlena
Распишите структуру (вход, проверка, редирект). Приведите код входа и прочее. И всё время смотрите входные данные.
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
quinlena
А теперь давайте проанализируем (код просмотрел бегло).
У Вас форма отправляется сама на себя*. При первом входе на страницу логина, реферер пишется правильный. Далее логинимся. И после всех манипуляций реферер меняется на предыдущую страницу, а точнее на login.php. Так же он поменяется если вылезло сообщение о неправильном вводе логина или пароля (заново же отправим данные, а реферер обновится опять на login.php).
Разнесите форму входа и проверку данных по разным скриптам (файлам).
И грубо писать такое значение из первоисточника ($_SERVER['HTTP_REFERER']). Лучше последим за ним, например вот так -
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
[quote=avtor.fox][/quote]
Нужно занести в сессию и там хранить?
avtor.fox
Отправлено: 30 Ноября, 2012 - 07:48:06
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
quinlena
Как вариант. Смотрите чему равен реферер и если он Вас не устраивает, оставляете предыдущее значение (в сессии). Например.
quinlena
Отправлено: 30 Ноября, 2012 - 07:48:46
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
avtor.fox пишет:
quinlena
Как вариант. Смотрите чему равен реферер и если он Вас не устраивает, оставляете предыдущее значение (в сессии). Например.
Спасибо. Попробую. Надеюсь получится
sKaa
Отправлено: 30 Ноября, 2012 - 08:02:48
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Зачем вообще вам этот реферер? Подменить его - дело двух минут. (Добавление)
И регулярка тут тоже не к месту - имхо. Там где можно обойтись функциями для работы со строками, нужно обходится именно ими.
quinlena
Отправлено: 30 Ноября, 2012 - 08:04:11
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
sKaa пишет:
Зачем вообще вам этот реферер? Подменить его - дело двух минут.
Чтоб допустим вам пришло письмо со ссылкой, вы нажали на нее, вбили логин с паролем и перешли дальше по этой ссылке (Добавление)
avtor.fox пишет:
quinlena
Как вариант. Смотрите чему равен реферер и если он Вас не устраивает, оставляете предыдущее значение (в сессии). Например.
Ничего не понимаю, вот этот код теперь в другом файле:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.