![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 640
|
![]()
Здравствуйте!
Пытаюсь отправить POST запрос PHP средствами..., но почему-то в result приходит вес код страницы, к которой делается запрос, а не результат выполнения этого кода. $url = '../reg/send_rec_pass_sms.php'; $params = array( 'sendsms' => 'sendsms', // в '../reg/send_rec_pass_sms.php' это будет $_POST['param1'] == '123' 'phone' => '$email_phone', // в http://localhost/post.php это будет $_POST['param2'] == 'abc' 'name' => $name, 'newpass' => $newpass, ); $result = file_get_contents($url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($params) ) ))); echo $result; |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Значит сервер не настроен на исполнение php, вот и отдает текст страницы.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 640
|
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Вбить в гугл или доку: имя_вашего_веб_сервера php
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 640
|
![]()
Почему пишет, Неверный запрос!?....
$hostname = 'localhost'; $path = '../reg/send_rec_pass_sms.php'; $content = ''; // Устанавливаем соединение с сервером $hostname $fp = fsockopen($hostname, 80, $errno, $errstr, 30); // Проверяем успешность установки соединения if (!$fp) die('<p>'.$errstr.' ('.$errno.')</p>'); // Данные HTTP-запроса $data = 'sendsms='.urlencode($sendsms).'&ph one='.urlencode($email_phone); // Заголовок HTTP-запроса $headers = 'POST '.$path." HTTP/1.1\r\n"; $headers .= 'Host: '.$hostname."\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= 'Content-Length: '.strlen($data)."\r\n\r\n"; // Отправляем HTTP-запрос серверу fwrite($fp, $headers.$data); // Получаем ответ while ( !feof($fp) ) $content .= fgets($fp, 1024); // Закрываем соединение fclose($fp); // Выводим ответ в браузер echo $content; } HTTP/1.1 400 Bad Request Date: Fri, 11 Aug 2017 18:10:34 GMT Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 Vary: accept-language,accept-charset Accept-Ranges: bytes Connection: close Content-Type: text/html; charset=iso-8859-1 Content-Language: en Bad request! Your browser (or proxy) sent a request that this server could not understand. If you think this is a server error, please contact the webmaster. Error 400 localhost 08/11/17 23:10:34 Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 |
![]() |
![]() |
![]() |
#6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Сделайте нормальную форму, добьетесь, чтобы сервер её глотал.
Потом сравнивайте запрос от формы с самодельным. Тут же как в программировании - какая-нибудь запятая пропущена, и уже ошибка |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 640
|
![]()
Ниже приведенный код работает отлично! Но, скажите пожалуйста, почему в ответе приходит много лишнего? Ответ должен быть: smssend, а приходит:
HTTP/1.1 200 OK Date: Sat, 12 Aug 2017 08:15:46 GMT Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 X-Powered-By: PHP/5.3.8 Content-Length: 10 Content-Type: text/html smssend Код, который посылает POST: $hostname = 'localhost'; $path = "https://localhost/shop/reg/send_rec_pass_sms.php"; $content = ''; // Устанавливаем соединение с сервером $hostname $fp = fsockopen($hostname, 80, $errno, $errstr, 30); // Проверяем успешность установки соединения if (!$fp) die('<p>'.$errstr.' ('.$errno.')</p>'); // Данные HTTP-запроса $data = 'sendsms='.urlencode($sendsms).'&ph one='.urlencode($email_phone); // Заголовок HTTP-запроса $headers = 'POST '.$path." HTTP/1.1\r\n"; $headers .= 'Host: '.$hostname."\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= 'Content-Length: '.strlen($data)."\r\n\r\n"; // Отправляем HTTP-запрос серверу fwrite($fp, $headers.$data); // Получаем ответ while ( !feof($fp) ) $content .= fgets($fp, 1024); // Закрываем соединение fclose($fp); // Выводим ответ в браузер echo $content; } |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Это HTTP... вы хоть основы почитайте. Игнорируйте заголовки и будет вам только smssend
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отправить POST запрос | nibufep | PHP | 9 | 30.09.2015 17:26 |
Отправить POST запрос на текущую страницу в webbrowserе | nibufep | Общие вопросы Delphi | 48 | 07.07.2015 20:15 |
Отправить POST-запрос на сервер | sarmat84 | Работа с сетью в Delphi | 4 | 21.08.2012 10:44 |
PHP CURL AJAX POST-запрос | SLASH_CyberPunk | PHP | 0 | 28.11.2011 16:07 |
POST запрос с XML структурой (php) | ExHang | Помощь студентам | 0 | 07.01.2011 20:42 |