|
|
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
Добрый день! сайт пишу с мод_реврайтом, т.е. 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 становится пустой. Подскажите как быть, сессии использовать предлагать не надо ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 13:25:26 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
1. REFERER не является обязательным заголовком. 2. Редирект приводит к GET-запросу, а не POST. Естесственно при этом $_POST['str_find'] не определён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 15:20:00 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
Решил делать так RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1 Не помогло. Почитав маны понял, что мод_реврайт работает только с реальной частью урл. Здесь нужно как-то использовать %{QUERY_STRING} Подскажите, какие строки дописать в .htaccess, догадаться не могу :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 09:14:08 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
[quot однобитный]Решил делать так RewriteRule ^find/\?str_find=(.*)$ ?page=find&str_find=$1[/quote]Нахрена? Массив $_POST при юзании mod_rewrite никуда не пропадает. Редирект - это header('Location: new_url'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 09:39:19 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
В моём случае $_POST - пропадает, т.е. со страницы результатов поиска мы переходим на другой скрипт, который возвращает нас обратно, т.е.: Header("Location: $_SERVER['HTTP_REFERER']) "); При вовращении обратно теряется $str_find, т.к. массив $_POST с $str_find пустой. Поэтому, подскажите, какие строки дописать в .htaccess, догадаться не могу :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 14:55:20 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
однобитныйПоэтому, подскажите, какие строки дописать в .htaccess, догадаться не могу :(В .htaccess - никаких. А нужен ли вам вообще POST с последующим редиректом? Из описания задачи этого не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 16:04:13 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
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 не помогает. Вопрос в том как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 06:30:19 |
|
||
|
(PHP) проблема из-за mod_rewrite с $_SERVER['HTTP_REFERER']
|
|||
|---|---|---|---|
|
#18+
однобитныйв строке поиска пишу "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] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 07:25:39 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=424&tid=1476275]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
326ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 602ms |

| 0 / 0 |
