PHP отправка POST запроса

Author Роман Чернышов    Category PHP     Tags , , Комментариев 0 Дата 20 Апр

post PHP отправка POST запросаПри написании какого либо скрипта, будь то дополнение к CMS или просто отдельный скрипт на PHP, может потребоваться возможность отправки данных скриптом методом POST на другой сервер или другому скрипту, или же просто самому себе, скрипту (да и такое часто бывает, для дополнительного выполнения каких либо действий).

Опишу в кратце для чего такая возможность понадобилась мне. На одном обслуживаемом мною сервере небыло возможности отправлять письма стандартной функцией PHP mail(), кроме того не было возможности воспользоваться сокетами для отправки почты через SMTP, не смотря на то что поддержка и вызов функции fsockopen() работала нормально (кроме работы с 25 портом).

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

Хоть затея и немного сумасшедшая, сама реализация очень интересна. Для этого мы воспользовались функцией работы с сокетом fsockopen() ,пример кода приведен ниже. Элементарный способ отправки данных методом POST именно так как отправляются данные введенные в обычную html форму.

$data="var=test&var2=privet";
$fp = fsockopen("rche.ru", 80, $errno, $errstr, 10); // открыть указанный хост по 80 порту
$out = "POST /file.php HTTP/1.1\n"; // открыть данный скрипт
$out .= "Host: rche.ru\n";
$out .= "Referer: rche.ru/\n";
$out .= "User-Agent: Opera\n";
$out .= "Content-Type: application/x-www-form-urlencoded\n";
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\n\n";
fputs($fp, $out); // отправка данных принимающему скрипту
fclose($fp);

Вот такой простейший пример, но думаю многим может пригодиться. Сам код примера взят с какого-то сайта посвященного программированию на PHP, уже не помню)

Разумеется есть еще куча различных способов отправки данных из скрипта PHP методом пост, одним из таких способов является использование библиотеки cURL, но об этом я расскажу в рамках другой статьи или заметки.

Оставить комментарий

Консультации

Консультант Чернышов Р.В. Зайдайте вопрос на любую из тем:
Бесплатно и без регистрации!

Задать вопрос
Все вопросы
Последние вопросы
Поиск по блогу
Категории
Архив
Новое на сайте
Портфолио Все работы


www.detskiy-mir.net
www.detskydoctor.ru
www.betelit.ru
www.all-alliance.ru
www.videogonok.ru
www.carpfishing.by
www.property-greek.com
www.domcons.ru

с 2009 года по сегодняшний день, создано более 300 сайтов...