Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 23 Февраль, 2012, 10:22:52

Страниц: [1]
Печать
Автор Тема: curl POST передача  (Прочитано 90 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spinoza    ↓ 
20 Январь, 2012, 03:35:41
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 3
Сила слова: 0

Всем привет!
Задался целью сделать у себя на сайте отправку смс, посмотрел, обычно у всех стоит только ссылка на оператора, а хочется чтобы пользователь не уходил с сайта и вбивал данные в моей форме, капчу в том числе. Для теле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); // Закрываем сессию
 
    }
Записан
Stasovsky    ↓ 
20 Январь, 2012, 03:44:38 , спустя 8 минут 57 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 49
Сообщений: 3337
Сила слова: 1.47

на сколько я знаю, скрипт и юзер увидят разные капчи
Записан
spinoza    ↓ 
20 Январь, 2012, 03:48:08 , спустя 3 минуты 30 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 3
Сила слова: 0

А почему? Ведь если куки сохранить в файл при первом подключении, а потом их использовать, для би это один пользователь. т.е. капча нужного сеанса сохраняется.
Записан
Alexmorbo    ↓ 
20 Январь, 2012, 05:57:02 , спустя 2 часа 8 минут 54 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 9
Сила слова: 0

Use dudeCurl
Записан
spinoza    ↓ 
21 Январь, 2012, 12:06:02 , спустя 6 часов 9 минут
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 3
Сила слова: 0

Не хочу использовать фрейм. Буду думать дальше (((
Записан
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: artoodetoo