Я создал скрипт Register для этого сайта. Я знаю, что у меня есть captcha в регистре, но это не проблема, когда я запускаю его, его показ «Ваш сеанс истек» кажется, что у меня есть проблема с cookie. я попытался tempcookie, но все равно тот же .. я не понимаю, в чем проблемы. если он показывает «неверный captcha» или что-то в этом роде, то это нормально. но и его проблема с Cookie.
вот коды.
//$cn = str_replace(".","",$_SERVER['REMOTE_ADDR']); //$finalcookie = "coki/".$cn.".txt"; $finalcookie = tempnam("/tmp", "CURLCOOKIE"); $url="http://www.ypox.com"; $login="$url/content/login.html"; $signup="$url/content/signup.action"; $agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $login); curl_setopt($ch, CURLOPT_COOKIEJAR, $finalcookie); curl_setopt($ch,CURLOPT_ENCODING,"gzip,deflate"); curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded","Accept: */*")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_REFERER, $login); $html=curl_exec($ch); //echo $html; //echo '<img src=captcha.php><br>'; $name="Rahul"; $email="rahul12345@gmail.com"; $mobile="8798147385"; $cap="captcha"; $data="hidGen=Mr&tfUserName=$name&tfMobileNum=$mobile&tfUserID=$email&date1=10%2F10%2F1980&tfReferCode=&textcode=$cap&checkaccept=on"; curl_setopt($ch, CURLOPT_URL, $signup); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEJAR,$finalcookie); curl_setopt($ch, CURLOPT_COOKIEFILE,$finalcookie); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_REFERER, $login); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html=curl_exec($ch); echo $html;
Вы можете использовать подробный вывод для сравнения того, что посылает курсор, по сравнению с тем, что вы ожидаете отправить. Возможно, файлы cookie не отправляются. Откройте поток записи файла $ fp и дайте curl напечатать в этом файле полный текст того, что он отправляет и получает.
/* in your setup */ $fp = fopen ( 'somefile.txt', 'w' ); /* then later in your code, only once in first group */ curl_setopt ( $ch, CURLOPT_VERBOSE, true ); curl_setopt ( $ch, CURLOPT_STDERR, $fp );