Реклама на сайте Advertise with us

Можно ли спросить методом POST, а получит обратно GET?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 18.11.99
Сообщения: 14226

Ссылка на сообщениеДобавлено: 13/04/10 в 17:53       Ответить с цитатойцитата 

Хочу на странице http://www.site.com/ в поисковой форме сделать запрос методом POST, но так, что-бы поведение было такое, как при запросе методом GET, и в итоге пользователь попадает на страницу http://www.site.com/?q=keyword

Сервер должен получить запрос методом POST, а отдать методом GET

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 13/04/10 в 18:07       Ответить с цитатойцитата 

Редирект после POST. Ну, возвращаешь 302 в качестве ответа на POST, с location, и все.

0
 



С нами с 18.11.99
Сообщения: 14226

Ссылка на сообщениеДобавлено: 13/04/10 в 18:19       Ответить с цитатойцитата 

Мне нужно в один запрос это сделать.

0
 



С нами с 01.03.07
Сообщения: 304
Рейтинг: 223

Ссылка на сообщениеДобавлено: 13/04/10 в 18:23       Ответить с цитатойцитата 

так это и будет 1 запрос фактически , после того как скрипт отработает , ему можно Location выдать с линком http://www.site.com/?q=keyword .

0
 



С нами с 01.03.07
Сообщения: 304
Рейтинг: 223

Ссылка на сообщениеДобавлено: 13/04/10 в 18:35       Ответить с цитатойцитата 

можно конечно сразу в action формы прописать строку с запросом, но тогда тот скрипт (http://www.site.com/?q=keyword ) и должен обрабатывать этот POST запрос.

Код:
<form action="http://www.site.com/?q=keyword" method="post"> </form>

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 13/04/10 в 18:48       Ответить с цитатойцитата 

kit писал:
а отдать методом GET


В первый раз слышу, что у отдаваемой страницы есть метод. icon_smile.gif

Моя подпись.

0
 

[www]

С нами с 14.07.04
Сообщения: 1693
Рейтинг: 872

Ссылка на сообщениеДобавлено: 13/04/10 в 19:06       Ответить с цитатойцитата 

дык и GET и POST это методы запроса

кажется понял что нужно, здесь это называется "POST может "симулировать" GET запрос"
http://webpeppers.ru/46.html

.

0
 

[www]

С нами с 14.07.04
Сообщения: 1693
Рейтинг: 872

Ссылка на сообщениеДобавлено: 13/04/10 в 19:18       Ответить с цитатойцитата 

Код:

<form action="http://localhost/test.php?q=keyword" enctype="application/x-www-form-urlencoded" method="post">
<input name="q" size="26" type="text" />
<input type="submit" value="TEST" />
</form>


<?php

echo $_POST["q"];


?>


ну и соотвественно можно проверять, если в $_POST["q"] пусто, то брать из $_GET["q"]

.

0
 



С нами с 01.03.07
Сообщения: 304
Рейтинг: 223

Ссылка на сообщениеДобавлено: 13/04/10 в 19:35       Ответить с цитатойцитата 

Цитата:
ну и соотвественно можно проверять, если в $_POST["q"] пусто, то брать из $_GET["q"]


для этого есть $_REQUEST, не надо ниче там проверять

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 13/04/10 в 19:40       Ответить с цитатойцитата 

leroy_17 писал:
можно конечно сразу в action формы прописать строку с запросом, но тогда тот скрипт (http://www.site.com/?q=keyword ) и должен обрабатывать этот POST запрос.
Код:
<form action="http://www.site.com/?q=keyword" method="post"> </form>

+1

0
 



С нами с 18.11.99
Сообщения: 14226

Ссылка на сообщениеДобавлено: 13/04/10 в 22:47       Ответить с цитатойцитата 

Пасибо за идеи ребята!

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 13/04/10 в 23:39       Ответить с цитатойцитата 

leroy_17 прав, редирект после POST решит проблему. То есть в результате отправки формы пользователь окажется на странице, которая не будет требовать при рефреше заново отправить данные формы.

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 13/04/10 в 23:57       Ответить с цитатойцитата 

remorhaz писал:
leroy_17 прав, редирект после POST решит проблему. То есть в результате отправки формы пользователь окажется на странице, которая не будет требовать при рефреше заново отправить данные формы.


Все зависит от цели. Если бы кит сказал, что он хочет получить, а не "как сделать что-то, что не скажу" - тогда было бы ясно. Что бы после поста получить страницу без повторного запроса, надо делать редирект. Если просто хочется параметров в URL - то надо просто делать полный URL в action.

PS Иногда такой редирект раздражает, так-как нельзя вернуться на предыдущую страницу кнопкой back...

Моя подпись.

0
 

no sign

С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403

Ссылка на сообщениеДобавлено: 13/04/10 в 23:59       Ответить с цитатойцитата 

редирект, да
а в самом скрипте

Код:

$query = (isset ($_GET ['q']) ? $_GET ['q'] : (isset ($_POST ['q']) ? $_POST ['q'] : ''));

skype:megaarachno

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 14/04/10 в 01:23       Ответить с цитатойцитата 

arachnO писал:
а в самом скрипте

Код:
$query = $_REQUEST['q'];

icon_mrgreen.gif

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 14/04/10 в 01:25       Ответить с цитатойцитата 

Но в данном случае использовать $_REQUEST не нужно - поскольку запрос формы POST, то и в скрипте достаточно лазить в $_POST.

0
 

no sign

С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403

Ссылка на сообщениеДобавлено: 14/04/10 в 01:46       Ответить с цитатойцитата 

remorhaz

1. $_REQUEST у меня например нахуй запрещен
2. в данном случае может параметр придти как из $_GET так и из $_POST
поэтому не надо ляля icon_smile.gif

skype:megaarachno

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 14/04/10 в 01:48       Ответить с цитатойцитата 

arachnO писал:

1. $_REQUEST у меня например нахуй запрещен


На кой чёрт?

arachnO писал:

2. в данном случае может параметр придти как из $_GET так и из $_POST
поэтому не надо ляля icon_smile.gif


Не может. Если форма POST - то и параметр строго в POST. Можно даже убивать скрипт при отличном от POST запросе - все будет работать.

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 14/04/10 в 04:37       Ответить с цитатойцитата 

remorhaz писал:
Не может. Если форма POST - то и параметр строго в POST. Можно даже убивать скрипт при отличном от POST запросе - все будет работать.


Код:

<FORM ACTION="kuku.cgi?q=one" METHOD=POST>
<INPUT TYPE="hidden" NAME="q" VALUE="two">
<INPUT TYPE="submit" VALUSE="wierd!!!">
</FORM>

Моя подпись.

0
 



С нами с 16.10.09
Сообщения: 343
Рейтинг: 419

Ссылка на сообщениеДобавлено: 14/04/10 в 04:43       Ответить с цитатойцитата 

Регулярно делаю что-то вида:
Код:
<form action="<?=$_SERVER['PHP_SELF']?>?act=update" method="POST">
<input type="text" name="name"><input type=submit>
</form>


Потом очень удобно разбирать формы по $_GET['act'], а параметры брать из $_POST.
По той же причине не использую $_REQUEST - надо все-таки знать, откуда что пришло.

0
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 20/04/10 в 13:42       Ответить с цитатойцитата 

самая жесть это переделывать чей-то код зависящий от GET и POST...
первым делом приходится делать глобальную замену на REQUEST
а такое нужно когда меняются требования к скрипту и надо метод поменять в нескольких формах например.
Код:
<FORM ACTION="kuku.cgi?q=one" METHOD=POST>
<INPUT TYPE="hidden" NAME="q" VALUE="two">
<INPUT TYPE="submit" VALUSE="wierd!!!">
</FORM>

неужели имен мало?? ведь могут быть еще и куки.

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 20/04/10 в 14:22       Ответить с цитатойцитата 

grozny писал:
самая жесть это переделывать чей-то код зависящий от GET и POST...


Не все пишут на PHP, используя стандартные инструменты. icon_smile.gif

Цитата:
неужели имен мало?? ведь могут быть еще и куки.


Мне хватает. Вопрос был в возможности одновременной передачи параметров. Ответ - возможно и лёгко. Просто иногда проще написать кусочек кода, чем "многа слов" icon_smile.gif

Моя подпись.

0
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 20/04/10 в 14:44       Ответить с цитатойцитата 

lega_cobra писал:
Код:

<FORM ACTION="kuku.cgi?q=one" METHOD=POST>
<INPUT TYPE="hidden" NAME="q" VALUE="two">
<INPUT TYPE="submit" VALUSE="wierd!!!">
</FORM>


Эта форма отправит POST-запрос. Да, действительно, q при этом окажется и в $_GET, и в $_POST, но вообще-то программисту за такой бардак нужно отпиливать яйца ржавой ножовкой. Тогда и не будет проблем, откуда брать параметр - все будут четко знать, что, скажем, q1 передается через URL, а q2 - через форму.

0
 

programmer

С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 20/04/10 в 15:34       Ответить с цитатойцитата 

Код:
import_request_variables('GP', 'request_');

тоже вариант

крипта на ByBit

0
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 20/04/10 в 20:53       Ответить с цитатойцитата 

Не совсем понятна задача и для чего она применяется, но насколько я понял задачу могу предложить два варианта решения, не привязанных к PHP или другому языку
1 вариант - на JavaScript при нажатии на submit-кпонку формировать строку <FORM ACTION="kuku.cgi?q=one" ...>, данные POST будут дублироваться в GET-запросе.

2 вариант - делать промежуточный скрипт, который будет перехватывать запрос (например с помощью mod_rewrite), считывать формы из POST запроса и переписывать переменные окружения под GET запрос , а после вызывать скрипт который будет считать что его вызвали методом GET.

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »