Linker
Guest
метод POST через CURL (или fsockopen)
Просьба поделится советом:
Есть форма отправки SMS,
1. Скачал исходник, сделал свою форму, скопировал два поля (type=text, textarea) и сделал кнопку submit (у них в оригинале type=image).
Заполнил поля (номер телефона, текст сообщения), нажал на кнопку и оказался на их страничке в которой мои данные введены и надпись: "сообщение поставлено в очередь" всё OK - ушло.
2. Раз такое дело стал писать скрипт, чтобы не занимать много места - здесь на форуме есть примеры (по аналогии отправки на АСЮ, через fsockopen + сам формирую заголовки + "урлкодированная" строка POST-данных)
Получаю ответ: HTTP /1.1 200 OK
Но ! SMS не ушло!
3. Раз так, стал делать через CURL:
// я опускаю проверку данных из формы ит.д.
$phone = $_POST['number'];
$text = $_POST['message'];
$PostData = $field."=".$phone."&".$textarea."=".$text."&".$submit."=".$subvalue;
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
/////////////////////////////
Вот что получаю в ответ:
Заголовки:
[ЦВЕТОМ=crimson]
HTTP/1.1 100 Continue Server: Microsoft-IIS/5.0 Date: Wed, 05 Mar 2003 07:36:13 GMT HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0 Date: Wed, 05 Mar 2003 07:36:13 GMT Connection: close Set-Cookie: PHPSESSID=51338171a51b8850624628e958da2447;
expires=Wed, 05-Mar-03 17:36:13 GMT; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-type: text/html
[/ЦВЕТОМ]
Тело документа:
Мои данные введены, но вместо того чтобы в поле результат увидить - "Ваше сообщение поставлено в очередь" я получаю:
[ЦВЕТОМ=red]
Warning: MS SQL message: Line 1: Incorrect syntax near ','. (severity 15) in C:\Inetpub\wwwroot\restrict\smssend.php on line 41
Warning: MS SQL: Query failed in C:\Inetpub\wwwroot\restrict\smssend.php on line 41
[/ЦВЕТОМ]
Результат - ошибка - невозможно вставить сообщение в базу данных, попробуйте позже.
Извиняюсь за размах постинга, но хотелось максимально описать суть траблемы.
???
P.S. В переменной $host у меня тоже, что и у них в <form action=...>, только "http://sms.site.ru/..."
В переменной $ref - чего только не пробовал даже localhost
В переменной $ua - всё, как положено, заголовок типа:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)
Просьба поделится советом:
Есть форма отправки SMS,
1. Скачал исходник, сделал свою форму, скопировал два поля (type=text, textarea) и сделал кнопку submit (у них в оригинале type=image).
Заполнил поля (номер телефона, текст сообщения), нажал на кнопку и оказался на их страничке в которой мои данные введены и надпись: "сообщение поставлено в очередь" всё OK - ушло.
2. Раз такое дело стал писать скрипт, чтобы не занимать много места - здесь на форуме есть примеры (по аналогии отправки на АСЮ, через fsockopen + сам формирую заголовки + "урлкодированная" строка POST-данных)
Получаю ответ: HTTP /1.1 200 OK
Но ! SMS не ушло!
3. Раз так, стал делать через CURL:
// я опускаю проверку данных из формы ит.д.
$phone = $_POST['number'];
$text = $_POST['message'];
$PostData = $field."=".$phone."&".$textarea."=".$text."&".$submit."=".$subvalue;
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
/////////////////////////////
Вот что получаю в ответ:
Заголовки:
[ЦВЕТОМ=crimson]
HTTP/1.1 100 Continue Server: Microsoft-IIS/5.0 Date: Wed, 05 Mar 2003 07:36:13 GMT HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0 Date: Wed, 05 Mar 2003 07:36:13 GMT Connection: close Set-Cookie: PHPSESSID=51338171a51b8850624628e958da2447;
expires=Wed, 05-Mar-03 17:36:13 GMT; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-type: text/html
[/ЦВЕТОМ]
Тело документа:
Мои данные введены, но вместо того чтобы в поле результат увидить - "Ваше сообщение поставлено в очередь" я получаю:
[ЦВЕТОМ=red]
Warning: MS SQL message: Line 1: Incorrect syntax near ','. (severity 15) in C:\Inetpub\wwwroot\restrict\smssend.php on line 41
Warning: MS SQL: Query failed in C:\Inetpub\wwwroot\restrict\smssend.php on line 41
[/ЦВЕТОМ]
Результат - ошибка - невозможно вставить сообщение в базу данных, попробуйте позже.
Извиняюсь за размах постинга, но хотелось максимально описать суть траблемы.
???
P.S. В переменной $host у меня тоже, что и у них в <form action=...>, только "http://sms.site.ru/..."
В переменной $ref - чего только не пробовал даже localhost

В переменной $ua - всё, как положено, заголовок типа:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)