Подтвердить что ты не робот

Отправка данных POST без формы

Могу ли я послать, например, строку или другую часть информации в другой .php файл, если он не был открыт [таким образом, не GET, а POST соответствует тому, что я знаю], не используя форму?

4b9b3361

Ответ 1

Если вы не хотите, чтобы ваши данные были видны пользователю, используйте сеанс PHP.

Данные в почтовом запросе все еще доступны (и манипулируются) пользователем.

Оформить заказ этот учебник на сеансах PHP.

Ответ 2

Вы можете использовать AJAX для отправки запроса POST, если вы не хотите создавать формы.

Использование jquery $. post метод довольно прост:

$.post('/foo.php', { key1: 'value1', key2: 'value2' }, function(result) {
    alert('successfully posted key1=value1&key2=value2 to foo.php');
});

Ответ 3

Отправьте свои данные с СЕССИЕЙ, а не в сообщение.

session_start();
$_SESSION['foo'] = "bar";

На странице, где вы получаете запрос, если вам абсолютно нужны данные POST (какая-то странная логика), вы можете сделать это в начале:

$_POST['foo'] = $_SESSION['foo'];

Данные сообщения будут действительны точно так же, как если бы они были отправлены с помощью POST.

Затем уничтожьте сеанс (или просто отключите поля, если вам нужен сеанс для других целей).

Важно уничтожить сеанс или отключить поля, потому что, в отличие от POST, SESSION останется действительной до тех пор, пока вы явно не уничтожите ее или до конца сеанса браузера. Если вы этого не сделаете, вы можете увидеть некоторые странные результаты. Например: вы используете sesson для фильтрации некоторых данных. Пользователь включает фильтр и получает отфильтрованные данные. Через некоторое время он вернется на страницу и ожидает, что фильтр будет reset, но это не так: он все еще видит отфильтрованные данные.

Ответ 4

взгляните на документацию php для этих функций, которые вы можете отправить post reqeust, используя их.

fsockopen()
fputs()

или просто используйте класс, например Zend_Http_Client, который также основан на сокет-соединениях.

также нашел опрятный пример с помощью google...

Ответ 5

Просто используйте: file_get_contents()

// building array of variables
$content = http_build_query(array(
            'username' => 'value',
            'password' => 'value'
            ));
// creating the context change POST to GET if that is relevant 
$context = stream_context_create(array(
            'http' => array(
                'method' => 'POST',
                'content' => $content, )));

$result = file_get_contents('http://www.example.com/page.php', null, $context);
//dumping the reuslt
var_dump($result);

Ссылка: мой ответ на аналогичный вопрос:

Ответ 6

function redir(data) {
  document.getElementById('redirect').innerHTML = '<form style="display:none;" position="absolute" method="post" action="location.php"><input id="redirbtn" type="submit" name="value" value=' + data + '></form>';
  document.getElementById('redirbtn').click();
}
<button onclick="redir('dataToBeSent');">Next Page</button>
<div id="redirect"></div>