Могу ли я послать, например, строку или другую часть информации в другой .php-файл, если он не будет открыт [таким образом, не GET, а POST соответствует тому, что я знаю], не используя форму?
Если вы не хотите, чтобы ваши данные были видны пользователю, используйте сеанс PHP.
Данные в почтовом запросе все еще доступны (и манипулируются) пользователем.
Ознакомьтесь с этим руководством по сеансам PHP.
Вы можете использовать AJAX для отправки запроса POST, если вы не хотите создавать формы.
Использование метода jquery $ .post довольно просто:
$.post('/foo.php', { key1: 'value1', key2: 'value2' }, function(result) { alert('successfully posted key1=value1&key2=value2 to foo.php'); });
Отправляйте свои данные с СЕССИЕЙ, а не публикуйте.
session_start(); $_SESSION['foo'] = "bar";
На странице, где вы получаете запрос, если вам абсолютно нужны данные POST (какая-то странная логика), вы можете сделать это в начале:
$_POST['foo'] = $_SESSION['foo'];
Почтовые данные будут действительны точно так же, как если бы они были отправлены с помощью POST.
Затем уничтожьте сеанс (или просто отключите поля, если вам нужен сеанс для других целей).
Важно уничтожить сеанс или отключить поля, потому что, в отличие от POST, SESSION останется действительной до тех пор, пока вы явно не уничтожите ее или до конца сеанса браузера. Если вы этого не сделаете, вы можете увидеть некоторые странные результаты. Например: вы используете sesson для фильтрации некоторых данных. Пользователь включает фильтр и получает отфильтрованные данные. Через некоторое время он вернется на страницу и ожидает, что фильтр будет сброшен, но это не так: он все еще видит отфильтрованные данные.
посмотрите на php-документацию для этих функций, которую вы можете отправить post reqeust, используя их.
fsockopen() fputs()
или просто используйте класс, подобный Zend_Http_Client, который также основан на сокет-соединениях.
также нашел опрятный пример с помощью google …
Просто используйте: 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);
Ссылка : мой ответ на аналогичный вопрос: