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, но об этом я расскажу в рамках другой статьи или заметки.
Похожие записи
Оставить комментарий
Senior, Architector
предложить оффер
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать публичный ключ в RSA? спросил (а) Сергей
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
- Подтверждение номера телефона при регистрации на сайте к записи
- Дополнение «кошелек» для CMS совместных покупок к записи
- Дополнение «кошелек» для CMS совместных покупок к записи
- Подтверждение номера телефона при регистрации на сайте к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
Archive
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (37)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Март 2016 (1)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (42)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (8)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Разработка сайта для Андрея Ковалёва 30.12.2022
- Разработка плагина для WordPress — Аудиогид 12.12.2022
- Оптимизация скорости работы сайта, поиск слабых мест (от CPU до MySQL) 07.12.2022
- Быстрый перехват заказов на перевозку грузов 07.12.2022
- Интеграция вашего сайта или CRM с API Wildberries 06.12.2022