Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Отправка формы посредством cURL
Форумы портала PHP.SU » » Если скрипт не работает » Отправка формы посредством cURL

Страниц (1): [1]
 

1. Runet4ik - 27 Августа, 2011 - 23:04:25 - перейти к сообщению
Подскажите пожалуйста в чём может быть причина. Суть такова, пытаюсь зарегаться на сайте скриптом с помощью curl'а, делаю это в три этапа: получаю страницу, потом капчу и в завершение отправляю пост-запросом форму, но результат всегда один, ошибок нет, но выдает что "неверный код капчи", что я не так делаю? Вот все три этапа скрипта:
Получаю страницу:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $url="https://site.ru";
  4. $useragent = $_SERVER['HTTP_USER_AGENT'];
  5.  
  6. $cookies = "cookies.txt";
  7. $post=$_POST;
  8. function f_page($url, $useragent, $cookies){
  9. $ch = curl_init();
  10. curl_setopt($ch, CURLOPT_URL, $url);
  11. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: windows-1251,utf-8,q=0.7,*;q=0.7'));
  12. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  13. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
  15. curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  17. $result = curl_exec($ch);
  18.  

Получаю капчу:
PHP:
скопировать код в буфер обмена
  1.  
  2. curl_setopt($ch, CURLOPT_URL, $url."/captcha.jpg");
  3. curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  4. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: windows-1251,utf-8,q=0.7,*;q=0.7'));
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  7. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
  8. curl_setopt($ch, CURLOPT_COOKIEFILE, file($cookies));
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10. $res = curl_exec($ch);
  11. $fp = fopen("captcha.jpg", "wb");
  12. fwrite($fp, $res);
  13. fclose($fp);
  14. $replace = str_replace("sign.aspx", "testes.php", $result);
  15. echo $replace;
  16. curl_close($ch); }
  17.  

Отправляю форму:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = curl_init('https://'.$url.'/sign.aspx');
  3. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: windows-1251,utf-8,q=0.7,*;q=0.7'));
  4. curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  5. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, file($cookies));
  7. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  8. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  9. curl_setopt($ch, CURLOPT_POST, 1);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  12. $itog = curl_exec($ch);
  13. echo itog;
  14.  
2. LIME - 28 Августа, 2011 - 08:39:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
  2. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);

это должно быть во всех 3ех кодах

 

Powered by ExBB FM 1.0 RC1