powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
8 сообщений из 8, страница 1 из 1
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33691548
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
сайт пишу с мод_реврайтом, т.е.

RewriteEngine On
RewriteRule ^([a-z_]+)/?$ ?page=$1
ErrorDocument 403 /?page=403
ErrorDocument 404 /?page=404

Есть скрипт для поиска товаров, т.е. форма:

<FORM name="find_form" action="http://comp.eximer.net/find/" method="post">
<INPUT type="text" name="str_find" value="" size="15" maxlength="40" onClick="document.find_form.str_find.value='';">
...

Всё работает нормально, но при перехода со страницы поиска на скрипт, кторый перенаправляет обратно на эту страницу ($_SERVER['HTTP_REFERER']) переменная str_find становится пустой.

Подскажите как быть, сессии использовать предлагать не надо ;)
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33692067
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
1. REFERER не является обязательным заголовком.
2. Редирект приводит к GET-запросу, а не POST. Естесственно при этом $_POST['str_find'] не определён.
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33693317
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил делать так

RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1

Не помогло. Почитав маны понял, что мод_реврайт работает только с реальной частью урл. Здесь нужно как-то использовать %{QUERY_STRING}

Подскажите, какие строки дописать в .htaccess, догадаться не могу :(
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33693371
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
[quot однобитный]Решил делать так
RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1[/quote]Нахрена?
Массив $_POST при юзании mod_rewrite никуда не пропадает. Редирект - это header('Location: new_url');
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33694693
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моём случае $_POST - пропадает, т.е. со страницы результатов поиска мы переходим на другой скрипт, который возвращает нас обратно, т.е.:
Header("Location: $_SERVER['HTTP_REFERER']) ");
При вовращении обратно теряется $str_find, т.к. массив $_POST с $str_find пустой.
Поэтому, подскажите, какие строки дописать в .htaccess, догадаться не могу :(
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33695000
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
однобитныйПоэтому, подскажите, какие строки дописать в .htaccess, догадаться не могу :(В .htaccess - никаких. А нужен ли вам вообще POST с последующим редиректом? Из описания задачи этого не видно.
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33696138
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestВ .htaccess - никаких. А нужен ли вам вообще POST с последующим редиректом? Из описания задачи этого не видно.

http://comp.eximer.net
в строке поиска пишу "microsoft", далее выводится страница с результатом поиска. Ложу товар в коризну (basket.php?id=ID_TOVAR), далее скрипт basket.php возвращает меня на страницу с результатами поиска Header("Location: $_SERVER['HTTP_REFERER']) ");
и вместо результатов поиска надпись: "слишком короткая строка поиска", т.е. переменная str_find из массива POST не передалась. Вот в этом и есть проблема.
Если делать через гет, то:
RewriteEngine On
RewriteRule ^([a-z_]+)/?$ ?page=$1
RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1
ErrorDocument 403 /?page=403
ErrorDocument 404 /?page=404
не помогает. Вопрос в том как быть?
...
Рейтинг: 0 / 0
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
    #33696157
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
однобитныйв строке поиска пишу "microsoft", далее выводится страница с результатом поиска. Ложу товар в коризну (basket.php?id=ID_TOVAR), далее скрипт basket.php возвращает меня на страницу с результатами поиска Header("Location: $_SERVER['HTTP_REFERER']) ");Вам не нужен POST
RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1mod_rewrite работает только с path и не затрагивает query, если говорить в терминах функции parse_url , соответственно, что-то вроде
RewriteRule ^find/$ ?page=find [L,QSA]
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]