Как перенести данные POST на новую страницу в PHP без формы? - PullRequest
0 голосов
/ 15 августа 2010

Редактировать: Я мог бы упростить этот вопрос, спросив, есть ли способ сделать что-то вроде header('Location: /msg_form.php?error=3'), кроме отправки error = 3 и всей другой информации о форме через POST. Я думаю, что короткий ответ - нет, но есть альтернативные способы сделать что-то.


Я интегрировал систему сообщений в свой веб-сайт, который использовал GET для всего, но мне нужно было отправлять сообщения большим спискам людей, поэтому мне пришлось переключиться на использование POST. Однако это портит систему, когда вы отправляете форму сообщения, и есть ошибки. Форма отправляется на страницу обработки, и в случае ошибок она должна перенаправляться обратно на страницу формы, но теперь при этом выводится вся информация POST. (

Разве я не могу имитировать отправку формы со страницы обработки php? Я бы подумал, что curl может сделать это для меня, но пока он просто отправляет ПОЗИЦИИ в преисподнюю, но не перенаправляет браузер.

Полагаю, я мог бы распечатать форму с некоторыми скрытыми переменными, а затем перенаправить с помощью html или javascript, но это кажется глупым. Также я мог бы интегрировать процессор прямо в страницу формы, что я мог бы сделать, но я бы предпочел не переставлять много вещей.

Ответы [ 5 ]

4 голосов
/ 15 августа 2010

Часто я буду использовать одну и ту же страницу для ввода и обработки формы. В верхней части страницы вы проверяете переменные POST и обрабатываете их соответствующим образом. Я строю строку с любыми ошибками. Затем в конце кода обработки, если есть ошибки, повторно отобразите страницу ввода с ошибками. В противном случае перенаправьте или отобразите страницу с благодарностью и т. Д.

Вы также можете использовать jQuery, чтобы отправить форму, оставаясь на странице, и обработать ответ (отобразить ошибки, которые возвращаются, или перенаправить). Есть много способов решить вашу проблему.

3 голосов
/ 15 августа 2010

хорошо .. я не уверен, что вы пытаетесь сделать ... но если вам нужно отправить POST с php, вы можете сделать это с помощью curl примерно так:

<?php
 $ch = curl_init('http://mysite.com/index.php');
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, "option=com_content&task=blogcategory&id=24&Itemid=55");
 curl_exec ($ch);
 curl_close ($ch);
?>
2 голосов
/ 15 августа 2010

Вы можете хранить данные POST в переменных сеанса.

0 голосов
/ 15 августа 2010

Вы можете хранить данные POST в cookie-файле.

0 голосов
/ 15 августа 2010

Вы можете использовать сеансы, сервис, предоставляемый сервером, который использует куки.Или вы можете отправить информацию с помощью http-передачи (более длинное решение) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...