Всем привет!
Задался целью сделать у себя на сайте отправку смс, посмотрел, обычно у всех стоит только ссылка на оператора, а хочется чтобы пользователь не уходил с сайта и вбивал данные в моей форме, капчу в том числе. Для теле2 нашел годный пример, а вот с билайном засада.
Попытался сделать по аналогии с теле2,
1) - подключаюсь curl_init(
https://www.beeline.ru/sms/index.wbp) ищу afcode, это рандомный параметр формы, сливаю куки в массив.
2) - подключаюсь curl_init(
https://www.beeline.ru/mamimg.aspx?width=120&height=30) сохраняю капчу.
3) - по идее теперь все полученные параметры нужно передать POST запросом на форму билайна, но у меня нихера не выходит!!!
Как программер только учусь...
функция отправки.
function sendData
($send_url,
$code,
$captcha,
$refer)
{
global $user_cookie_file;
$posts =
array();
$posts['send'] =
'';
$posts['smstext'] =
'%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82';
$posts['afcode'] =
$code;
$posts['smstoprefix'] =
'906';
$posts['smsto'] =
'2589662';
$posts['dirtysmstext'] =
'%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82';
$posts['translit'] =
'on';
$posts['confirm_key'] =
'';
$posts['confirmcode'] =
$captcha;
$posts['x'] =
'10';
$posts['y'] =
'7';
$ch = curl_init
();
curl_setopt
($ch, CURLOPT_URL,
$send_url);
curl_setopt
($ch, CURLOPT_HEADER,
0);
curl_setopt
($ch, CURLOPT_RETURNTRANSFER,
true);
curl_setopt
($ch, CURLOPT_SSL_VERIFYPEER,
false);
curl_setopt
($ch, CURLOPT_SSL_VERIFYHOST,
false);
curl_setopt
($ch, CURLOPT_REFERER,
$refer );
curl_setopt
($ch, CURLOPT_COOKIEFILE,
$user_cookie_file);
curl_setopt
($ch, CURLOPT_COOKIEJAR,
$user_cookie_file);
curl_setopt
($ch, CURLOPT_USERAGENT,
"Mozilla Firefox 3 (compatible; MSIE 6.0; LAS Linux)");
curl_setopt
($ch, CURLOPT_VERBOSE,
1);
$ch = curl_init
();
// Инициализируем сессию
curl_setopt
($ch, CURLOPT_URL,
$send_url);
// задаем адрес обработчика формы
curl_setopt
($ch, CURLOPT_POST,
1);
// Указываем, что нам нужно отправить POST-запрос
curl_setopt
($ch, CURLOPT_POSTFIELDS,
$posts);
// Передаем POST-параметры
curl_setopt
($ch, CURLOPT_RETURNTRANSFER,
0);
// Результат нам нужно вернуть в переменную, а не на экран
curl_setopt
($ch, CURLOPT_FOLLOWLOCATION,
1);
// Переходить по редиректам
curl_setopt
($ch, CURLOPT_REFERER,
$refer );
curl_setopt
($ch, CURLOPT_COOKIEJAR,
$user_cookie_file);
//Куки два // Указываем файл для хранения кукисов. При чем он должен быть тот же, что и в прошлый раз, чтобы кукисы подхватились.
$result = curl_exec
($ch);
curl_close
($ch);
// Закрываем сессию
}