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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизация VK.com с помощью СURL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Реализация парсера VK
Den_Step
Отправлено: 09 Февраля, 2017 - 22:04:07
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




Приветствую вас, ниже приведен код авторизации в ВК , но всегда есть "но", работает этот код почему-то через раз, при одном обновлении страницы стягивается главная страница вк(без всяких ошибок), при втором обновлении уже авторизированная страница, но в конце Notice: Undefined offset: 0 для двух скрытых переменных ВК($ip_h,$lg_h) которые регулярными выражениями были найдены.
Подскажите пожалуйста в чем может быть ошибка или может какую-то литературу посоветуйте Закатив глазки
PHP:
скопировать код в буфер обмена
  1.  
  2. $username = 'my_login';
  3. $password = 'my_pas';
  4. $url = 'http://vk.com';
  5. $ch = curl_init($url);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);;
  8. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36');
  9. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  10. curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt');
  11. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  12. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  13. $headers = array(
  14.  'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  15.  'content-type' => 'application/x-www-form-urlencoded',
  16.  'user-agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
  17. );
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19.  
  20. $content = curl_exec($ch);
  21. echo iconv('CP1251', 'UTF-8', $content);
  22. preg_match_all("/name=\"ip_h\" value=\"(.*?)\" \\//s", $content, $res[0]);
  23. preg_match_all("/name=\"lg_h\" value=\"(.*?)\" \\//s", $content, $res[1]);
  24. $ip_h = $res[0][1][0];// вот эти вот данный которые в форме hidden
  25. $lg_h = $res[1][1][0];// через раз отрабатывают с ошибкой
  26. $urlT = 'http://login.vk.com/?act=login';
  27. $ch = curl_init($urlT);
  28. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  29. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  30. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36');
  31. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  32. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  33. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); файл
  34. curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt');
  35. curl_setopt($ch, CURLOPT_POST, true);
  36. curl_setopt($ch, CURLOPT_POSTFIELDS, 'act=login&ip_h='.$ip_h.'&lg_h='.$lg_h."&role=al_frame&email=$username&pass=$password&expire=&captcha_sid=&captcha_key=&_origin=".'http://vk.com&q=1');
  37. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  38. $html = curl_exec($ch);
  39. echo iconv('CP1251', 'UTF-8', $html);

(Отредактировано автором: 09 Февраля, 2017 - 22:06:34)

 
 Top
LIME
Отправлено: 09 Февраля, 2017 - 22:13:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Den_Step это нормально
просто нет таких массивов
Den_Step пишет:
или может какую-то литературу посоветуйт
https://learn[dot]javascript[dot]ru/debugging-chrome
вот и смотри почему не формируется массив
Den_Step пишет:
$ip_h = $res[0][1][0];
почему ты уверен что будет такой массив всегда?
вставь проверку if
var_dump($res[0]);
не нашлось видимо по регулярке
вот и говорит что нет такого ключа
проверки наше все
(Добавление)
выводи отладочные сообщения чтоб понять
вардамп выше для примера

(Отредактировано автором: 09 Февраля, 2017 - 22:18:04)

 
 Top
Den_Step
Отправлено: 09 Февраля, 2017 - 22:19:00
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




LIME пишет:
Den_Step это нормально
просто нет таких массивов
Den_Step пишет:
или может какую-то литературу посоветуйт
https://learn[dot]javascript[dot]ru/debugging-chrome
вот и смотри почему не формируется массив
Den_Step пишет:
$ip_h = $res[0][1][0];
почему ты уверен что будет такой массив всегда?
вставь проверку if
var_dump($res[0]);
не нашлось видимо по регулярке
вот и говорит что нет такого ключа
проверки наше все


Массивы понятное дело экранирывались и каждый раз выводились, сейчас еще раз проверю

(Отредактировано автором: 09 Февраля, 2017 - 22:20:09)

 
 Top
LIME
Отправлено: 09 Февраля, 2017 - 22:22:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




какое экранирование? ты используешь ключи неглядя
а ты уверен что они есть?
дебаг дядя придумали для тебя
вставь проверку если есть такой ключь
если нет выводи вардампом всю инфу
вот и выйдешь на причину бага
а если еще научишься юзать нормальные инструменты то будешь эти вещи легко делать
https://habrahabr[dot]ru/post/250323/
 
 Top
Den_Step
Отправлено: 09 Февраля, 2017 - 22:28:38
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




LIME пишет:
какое экранирование? ты используешь ключи неглядя
а ты уверен что они есть?
дебаг дядя придумали для тебя
вставь проверку если есть такой ключь
если нет выводи вардампом всю инфу
вот и выйдешь на причину бага
а если еще научишься юзать нормальные инструменты то будешь эти вещи легко делать
https://habrahabr.ru/post/250323/

Прикол в том, дядя, что страница парсится когда ключей нету, а когда они есть наоборот не происходит авторизация. Спасибо за совет сейчас буду дебаг смотреть
 
 Top
LIME
Отправлено: 09 Февраля, 2017 - 22:31:14
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




обиделся)
ну я типа хорошего желаю дядя)
Den_Step пишет:
сейчас буду дебаг смотреть
маст ду
без дебага у нас никуда
потрать пару дней привыкнуть
потом мне спасибо отдельно напишешь в личку
я не гордый))
 
 Top
Den_Step
Отправлено: 09 Февраля, 2017 - 22:36:36
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




LIME пишет:
обиделся)
ну я типа хорошего желаю дядя)
Den_Step пишет:
сейчас буду дебаг смотреть
маст ду
без дебага у нас никуда
потрать пару дней привыкнуть
потом мне спасибо отдельно напишешь в личку
я не гордый))

В любом случае, уже спасибо, буду искать
 
 Top
LIME
Отправлено: 09 Февраля, 2017 - 22:40:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




/

(Отредактировано автором: 09 Февраля, 2017 - 23:00:50)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB