Как отправить данные с постом, а не попасть в php? - PullRequest
0 голосов
/ 04 мая 2011

У меня вопрос по поводу переменных. Представьте, что у меня есть php-скрипты, которые показывают сообщения об ошибках в зависимости от заголовка (www.example.com?error=1). Это покажет сообщение об ошибке 1. Теперь, как я мог бы сделать это без переменной в заголовке? Я имею в виду использование Post вместо Get. Как я могу «отправить» переменную post в другой скрипт, не используя форму?

Спасибо, phpheini

PS: причина, по которой я хочу это сделать, заключается в том, что я не хочу, чтобы люди меняли переменную в URL (от 1 до 2 до 3 и т. Д.).

Ответы [ 3 ]

1 голос
/ 04 мая 2011

Я нашел этот скрипт PHP и CURL из здесь :

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/path/to/form");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'foo' => 'foo foo foo',
    'bar' => 'bar bar bar',
    'baz' => 'baz baz baz'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
?>

Я не проверял это, но оно должно работать.

0 голосов
/ 04 мая 2011

Быстрый ответ: вы можете использовать html-формы для передачи ваших данных методом POST.

PHP просто получает данные, отправленные браузером, и единственный способ заставить отправку сообщения - использовать формы.

Вы можете использовать скрытые формы, дополненные javascript или аналогичными имитаторами ссылки, но мне больно.

Вы также можете использовать ajax для передачи данных, но не существует верного способа предотвратить вмешательство пользователя в ваши данные. Это немного сложнее. Например, в Firefox и firebug несанкционированное вмешательство в POST-переменные очень просто.

Возможно, вы хотите подумать об изменении логина вашего приложения и протестировать сообщения об ошибках на стороне сервера на основе реальных данных. Если вы используете ссылку, которая приводит к сообщению об ошибке, может быть, вы можете не показывать ее, например.

0 голосов
/ 04 мая 2011

Вы должны использовать cURL для отправки данных POST на другие страницы.Однако это не имеет отношения к тому, что вы хотите сделать.В чем проблема с GET?Используя GET или POST, вы всегда должны фильтровать пользовательский ввод.

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