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 :: Версия для печати :: Не выходит авторизация на сайте (куки отправил, видно что-то забыл)
Форумы портала PHP.SU » PHP » Программирование на PHP » Не выходит авторизация на сайте (куки отправил, видно что-то забыл)

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

1. denntl - 22 Августа, 2013 - 16:37:35 - перейти к сообщению
Здравствуйте. Пытаюсь авторизоваться на сайте http://advego[dot]ru/ . Использую вот такой вот код с реальными данными (можно использовать их):

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     function isAuth( $data ){
  3.     return preg_match('#<form[^>]+id="logout"#Usi',$data);
  4.     }
  5.     function request($url,$post = 0){
  6.     $ch = curl_init();
  7.     curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
  8.     curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
  9.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
  10.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
  11.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
  12.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  13.     curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
  14.     curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
  15.     curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post
  16.     if($post)
  17.         curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  18.     $data = curl_exec($ch);
  19.     curl_close($ch);
  20.     return $data;
  21.     }
  22.  
  23. $url = 'http://advego.ru/login/';
  24. $data = request('http://advego.ru/login/');
  25. include 'simple_html_dom.php';
  26. $data = str_get_html($data);
  27. $auth = array(
  28. 'login'=>'test-to-test@lenta.ru',
  29. 'pwd'=>'AdVeGo123',
  30. 'action'=>'login',
  31. 'uri'=>'/login/',
  32. 'captcha'=>'tmp_value',
  33. 'remember'=>'on'
  34. );
  35. $data->clear();
  36. unset($data);
  37. echo isAuth(request($url,$auth))?'Success':'Failed';;
  38.  
  39. ?>


Не выходит авторизоваться, пишет Failed. Я так понял что сайту нужно еще что-то отправить, но как это сделать не знаю.
Вторым шагом должно быть добавление статьи в магазин статей.
Заранее очень благодарен. Спасибо.
2. DelphinPRO - 22 Августа, 2013 - 17:34:35 - перейти к сообщению
denntl пишет:
такой вот код с реальными данными

denntl пишет:
'captcha'=>'tmp_value',

Вы уверены, что для качи используется именно tmp_value? Я что-то сомневаюсь...
(Добавление)
В случае с капчей, вам нужно первым запросом получить картинку капчи, распознать ее, вторым попытаться залогинится.
3. denntl - 22 Августа, 2013 - 17:37:48 - перейти к сообщению
При авторизации в ручную, выдавало именно это. Капчи при входе нету.

Я так понял это поле заполняется когда капча задействована.

 

Powered by ExBB FM 1.0 RC1