php и сессия

Статус
В этой теме нельзя размещать новые ответы.

Makssss

Новичок
Всем привет!

Ребята, в общем суть такова: у меня есть несколько платников по онлайн-играм. Человек, если заинтересовался игрой и хочет в нее поиграть, должен подписаться. Это делается через смс. Я хочу, чтобы весь процесс подписки шел на моих сайтах(сейчас там стоит форма, в которую чел. вводит свой номер телефона. ПРи нажатии на кнопку "отправить", он попадает на сам сайт "Мегафона" или "Билайна". Я хочу, чтобы все эти шаги, которые делаются на сайтах сотовых операторов , были на моем сайте, т.е., чтобы пользователь не покидал мои сайты.). Для этих целей пишу парсер. Первый шаг у меня готовый: юзер вводит свой номер телефона и жмет на "Отправить", данные передаются скрипту, которые POST- методом шлет это все на сайт сотовых операторов и вытягивает оттуда форму с капчей, плюс запоминает куки. На втором шаге он вводит просто капчу в форму(т.е., чтобы он посмотрел, правильно ли он ввел телефон). Вот тут вся проблема. По идее он вводит капчу, ему шлется смс, он переходит на 3 этап, где должен ввести код, полученный на телефон. У меня постоянно выдает, что введена неправильно капча. Шлю все, что в снифере ФФ "LiveHTTPHeaders". Для работы юзаю CURL.

Вот сам код:

PHP:
$mysite="saytik_test.ru";
$url="http://beeline.subscriptions.incoreweb.ru/svk-web/inc?msisdn=9656700000&serviceid=".$mysite."&returnurl=http%3A%2F%2Fuserend.info%2Fredir%2F%3Fhash%3D53bda668fc588d5af44570da3b51f152%26hash2%3D45967f9ac280d30bbfac5504ec1a1762%26sid%3D4928%26redir%3Dhttp%253A%252F%252F".$mysite."%252F%252Ffinish.php";
$ua="Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2";
$cook="w.txt";


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cook);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cook);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$ster = curl_exec($ch);


preg_match('#location.*?$#ims', $ster, $arr_matches);
$matches=preg_replace('#location.*?http#ims', 'http', $arr_matches[0]);
curl_setopt($ch, CURLOPT_URL, trim($matches));
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cook);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cook);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ster1 = curl_exec($ch);



$post=http_build_query(array("verify_code"=>"9191", "get_code"=>"   OK   "));

$url_to_send_post = "http://signup.beeline.ru/index.php?r=site/stepone";
$ref_post = $url_to_send_post;

curl_setopt($ch, CURLOPT_URL, $url_to_send_post);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cook);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cook);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$ster2 = curl_exec($ch);



preg_match('#<img.*?>#ims', $ster1, $arr);
preg_match('#<img.*?>#ims', $ster2, $arr1);
$src1=preg_replace('#(<.*?src=\")|(<.*?src=\')#ims', '', $arr[0]);
$src="http://signup.beeline.ru".preg_replace('#(\".*?.+)|(\'.*?.+)#ims', '', $src1);



preg_match('#action=\".*?\"#ims', $ster2, $arr2);
$action = preg_replace('#action=\"#ims', 'action="http://signup.beeline.ru', $arr2[0]);
$forms = preg_replace('#<form.*?>#ims', '<form '.$action.' method="POST">', $ster2);


$src1=preg_replace('#(<.*?src=\")|(<.*?src=\')#ims', '', $arr1[0]);
$src="http://signup.beeline.ru".preg_replace('#(\".*?.+)|(\'.*?.+)#ims', '', $src1);

echo iconv('utf-8', 'cp1251', $forms);
echo "<img src=\"".$src."\">";
curl_close($ch);
Вот, что заметил: если в снифере Фаерфокса записать заголовки(когда я вручную ввожу данные в форму на 2 шаге), а потом проэммулировать их в том же снифере, то происходит переход на 3 этап. Я проверил куки самого скрипта. Заменил их на куку, которая показана в снифере(например, PHPSESSID=8q0fr3e4508ktarm4t76bvd800). Скрипт стал переходить к 3 шагу. Подскажите, пожалуйста, что в скрипте у меня не так? Ведь, по идее, phpsessid должна записываться в куках скрипта и дальше скриптом использоваться. У меня же выдает ошибку, связанную с phpsessid.
Что не так в скрипте в работе с сессией?
 

Фанат

oncle terrible
Команда форума
во-первых, у тебя всё равно ничего не получится.
во-вторых, надо сначала спрашивать разрешение у "Мегафона" и "Билайна".
в-третьих, Тема закрыта
Варез, взлом, кража контента и другие противоправные действия запрещены к обсуждению на форуме.
 
  • Like
Реакции: bobo
Статус
В этой теме нельзя размещать новые ответы.
Сверху