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


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

Author: Samuel, 2010-09-23

5 answers

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

Данные в запросе post по-прежнему доступны (и доступны для манипулирования) пользователем.

Проверка этот учебник по сеансам PHP.

 21
Author: Stephen Holiday, 2010-09-23 17:24:44

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

Используя метод jquery $.post, это довольно просто:

$.post('/foo.php', { key1: 'value1', key2: 'value2' }, function(result) {
    alert('successfully posted key1=value1&key2=value2 to foo.php');
});
 15
Author: Darin Dimitrov, 2010-09-23 17:28:14

Отправляйте свои данные с помощью СЕАНСА, а не по почте.

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

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

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

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

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

Важно уничтожить сеанс или отменить настройку полей, потому что в отличие от СООБЩЕНИЕ, СЕАНС будет оставаться действительным до тех пор, пока вы явно не уничтожите его или до конца сеанса браузера. Если вы этого не сделаете, то можете наблюдать некоторые странные результаты. Например: вы используете sesson для фильтрации некоторых данных. Пользователь включает фильтр и получает отфильтрованные данные. Через некоторое время он возвращается на страницу и ожидает, что фильтр будет сброшен, но это не так: он все еще видит отфильтрованные данные.

 9
Author: Gregor, 2011-04-26 20:03:18

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

fsockopen()
fputs()

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

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

 5
Author: Andreas Linden, 2010-09-23 18:16:01

Просто используйте: 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);

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

 2
Author: wpcoder, 2017-10-27 18:53:17