|
Всем привет!Задался целью сделать у себя на сайте отправку смс, посмотрел, обычно у всех стоит только ссылка на оператора, а хочется чтобы пользователь не уходил с сайта и вбивал данные в моей форме, капчу в том числе. Для теле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 запросом на форму билайна, но у меня нихера не выходит!!!Как программер только учусь...функция отправки.Код PHP 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); // Закрываем сессию }
|