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 :: Версия для печати :: Авторизация на ucoz через curl
Форумы портала PHP.SU » » Работа с сетью » Авторизация на ucoz через curl

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

1. medievalraven - 16 Октября, 2011 - 12:23:39 - перейти к сообщению
Здравсвуйте. Пишу скрипт авторизации на сайте ucoz, постоянно натыкаюсь на подводные камни. Суть в том,что на ucoz сайтах после авторизации выдает кусок xml кода(ajax), который по идее должен был делать редирект на страницу http://адрес_сайта[dot]ру/?случайный_набор_символов , у меня так не получается сделать:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $ch = curl_init();                            
  3. curl_setopt($ch, CURLOPT_URL,  'http://адрес_сайта.ru');        
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. $html = curl_exec($ch);                        
  6.  
  7. curl_setopt($ch, CURLOPT_URL, 'http://адрес_сайта.ru/index/sub/');          
  8. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  
  9. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  10. curl_setopt($ch, CURLOPT_POST, true);              
  11. curl_setopt($ch, CURLOPT_POSTFIELDS, 'user=логин&password=пароль&rem=1&a=2&ajax=1&_tp_=xml&rnd='.rand( 100, 999 ));    
  12. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);    
  13.  
  14. $html = curl_exec($ch);
  15.  
  16. preg_match("/\+\"\?[0-9a-z]+/i", $html, $matches);
  17. $result = substr($matches[0],2);
  18.  
  19.  
  20. curl_setopt($ch, CURLOPT_URL, "http://адрес_сайта.ru/".$result);
  21. curl_setopt($ch, CURLOPT_HEADER, 1);
  22.  
  23. curl_exec($ch);
  24.  
  25. ?>
  26.  


вот ajax:
CODE (html):
скопировать код в буфер обмена
  1. <ajax>
  2. <cmd p="innerHTML" t="blk549024">
  3. <div align="left" style="padding:10px;"><div class="myWinLoadSD"></div></div>
  4. </cmd>
  5. <cmd p="js">
  6. var ad=window.location.href.replace(/#(.*)?/,''); setTimeout("window.location.href='"+ad+"?lg4BWU'",'1000')
  7. </cmd>
  8. </ajax>

у меня пока мало опыта в php, прошу помочь - найдите ошибки и подскажите пожалуйста в каком направлении копать дальше. мне нужно, чтобы, когда сервер авторизировался на сайте, можно было отсылать post запросы от имени авторизированного пользователя(например, отсылать ЛС)
P.S.: через HttpFox просматривал Post запрос - никакой полезной информации кроме той что тут написал, вытянуть не удалось
2. medievalraven - 17 Октября, 2011 - 17:10:24 - перейти к сообщению
проблему решил, она оказалась очень нелепой(надо было посылать при втором заходе cookie), прошу закрыть тему

 

Powered by ExBB FM 1.0 RC1