Forum Webscript.Ru

Программирование => Perl => Тема начата: Forza от 18 Сентября 2004, 16:20:04

Название: функция referer()
Отправлено: Forza от 18 Сентября 2004, 16:20:04
Есть в Перле функция referer(), которая возвращает URL, с которого был осуществлён переход на текущую страницу.
В результате экспериметов было выяснено, что она вернёт этот URL только в том случае, если переход был осуществлён с помощью нажатия юзером на гиперссылку. То есть если URL-адрес ввести вручную в строке броузера "адрес" или сделать переход с помощью функции JavaScript (location.search = \'?choice=someChoice;param=someParam\'), то функция referer() не возвращает ничего. :(
Это как-нибудь поправимо? Меня интересует вариант с переходом через ДжаваСкрипт.

Да, конечно, существует ряд вариантов обхода данной проблемы, но интересно, разрешима ли она напрямую, раз уж я столкнулся с ней. ;)
Название: функция referer()
Отправлено: Меняздесьдавнонет от 18 Сентября 2004, 17:02:58
проблема реферера к перлу не имеет никакого отношения
Использовать реферер для любых целей, кроме справочных - бессмысленно.
Название: функция referer()
Отправлено: Forza от 18 Сентября 2004, 17:51:46
Цитировать
RomikChef:
Использовать реферер для любых целей, кроме справочных - бессмысленно.


Ок. Просто я "взял" его из книги Дюбуа про MySQL+Perl. Там после добавления товара в корзину вызывалось print redirect (referer()) для вывода той же страницы, откуда товар был добавлен.

А как лучше реализовать нижеследующее:
Есть форма авторизации с ссылкой "я забыл пароль". Если чел его забыл, то он в форме заполняет поле "логин" и жмёт "я забыл пароль".
JS-функция func1() проверяет непустоту поля "логин", если пустое - выводит сразу же сообщение на этой же странице, если непустое - отсылает запрос на сервер.
Сервер, если логин существует, выводит новую страницу "вам на е-мэйл был отправлен пароль", а если логин не существует - на этой же странице (а она м.б. любой - корзиной, каталогом, результатом поиска и т.д.) должен вывести сообщение "указан несуществующий логин". [OFF]Всё вышеописанное обсуждать не надо, т.к. придумал не я, и так оно должно и остаться.[/OFF]

Вижу 2 варианта:
1) Используем