2010-01-08 2 views
0

У меня есть html-форма, которая отправляется через AJAX (плагин формы jquery) на PHP-прокси на моем сервере. Веб-прокси использует curl для POST для стороннего скрипта.

В моей html-форме есть входы с именами, такими как p [fname], p [lname], c [name], p [loc], p [loc] [email], p [loc] [email] [detail] , Имена указаны сторонним приложением.

Когда я использую GET для отправки формы на веб-прокси, я могу просто сделать следующее, чтобы передать данные формы успешно сценария третьей стороны внутри завитка запроса:

$postvars = $_SERVER['QUERY_STRING']; 
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars); 

Вопрос № 1: Есть ли что-то «неправильное» с использованием GET для отправки данных формы в мой веб-прокси? Как я уже упоминал, он отлично работает и требует меньше кодирования. $ _SERVER ['QUERY_STRING'] имеет точно данные, которые мне нужно передать третьим лицам через POST, в точно правильном формате.

Вопрос №2: Если у вас есть веская причина использовать POST для отправки на мой веб-прокси, то лучший способ пропустить многомерный ассоциативный массив в $ _POST, чтобы динамически строить $ postvars, без необходимости код любых значений ключа?

Примечание. Форма html не критически важна, и представленные ею данные вносятся в службу поддержки третьей стороны. Он не вставлен непосредственно в производственные данные.

ответ

0

Поскольку названия уже говорят о том, GET следует использовать, если вы хотите, чтобы получить данные без изменения данных на стороне сервера.
То же самое, POST следует использовать, если запрос изменяет данные на стороне сервера.

Поэтому вы должны выбрать способ в зависимости от того, что делает ваш запрос. Также обратите внимание, что URL-адреса имеют ограниченную длину, поэтому вы не можете указать, например. произвольное количество текста в параметр GET.

И после прочтения вашего вопроса полностью (:-D), кажется, что ваш запрос изменяет (в этом случае добавляет) данные, что означает, что более правильным является использование POST. Но поскольку вы только отправляете его через GET на свой прокси-сервер, а затем через POST в другое приложение, если оно работает, все в порядке.
Это зависит только от того, какой тип данных вы отправляете.

+0

Спасибо! Я знаком с общими правилами использования GET и POST. Поскольку GET-> POST работает здесь и требует меньше кодирования, я пытаюсь получить некоторые мнения о: 1. Можно ли нарушить это правило в таких случаях, как этот. 2. Есть ли какие-либо действительно веские причины (например, безопасность), которые я должен придерживаться POST, а не GET в этой ситуации. – Tex

+0

Как я уже сказал в вашем случае, это, вероятно, зависит только от типа данных, которые вы отправляете (длина URL-адреса). Что касается безопасности: POST не является надежным, чем GET. Если вы перехватываете HTTP-запрос, вы можете читать все данные независимо от того, POST или GET. Вы также можете изменять данные POST, для этого есть плагины для Firefox. Поэтому нет большой разницы. –

 Смежные вопросы

  • Нет связанных вопросов^_^