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 :: Пройти авторизацию на curl. Плачу 10$ первому.

 PHP.SU

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


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

> Без описания
JamesHound
Отправлено: 01 Августа, 2014 - 19:45:54
Post Id


Новичок


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


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




Здравствуйте. Нужно пройти авторизацию на сайте https://pass.rzd.ru.
Сразу скажу, что у меня не получилось, хотя я частенько занимаюсь такими вопросами. Вообщем, кто сможет просто пройти авторизацию, и предоставить скрипт, плачу 10 wmz.
Мой пример, с которым я пытаюсь войти, прилагаю.


PHP:
скопировать код в буфер обмена
  1. //echo phpinfo();die;
  2. /**
  3. * 01.08.2014
  4. * Авторизация rzd.ru
  5. */
  6.  
  7. // загрузка первой страницы
  8. function Download_Page()
  9. {
  10.     $url = 'https://pass.rzd.ru/timetable/logon/ru';
  11.      
  12.     $ch = curl_init();
  13.     curl_setopt($ch, CURLOPT_URL, $url);
  14.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата
  15.    
  16.     //curl_setopt_array($ch, curlOption()); // задать заголовки  
  17.     curl_setopt($ch, CURLOPT_COOKIEJAR,  $_SERVER['DOCUMENT_ROOT'].'/cookie_page'); //Куки два
  18.     //curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie_page'); //Куки раз
  19.    
  20.     $str_page = curl_exec($ch);
  21.     curl_close($ch);
  22. }
  23.  
  24. // Загрузка авторизации
  25. function Download_Main_Page()
  26. {
  27.     $url = 'https://pass.rzd.ru/timetable/j_security_check';
  28.    
  29.     $ch = curl_init();
  30.        
  31.     curl_setopt_array($ch, curlOption()); // задать заголовки  
  32.     curl_setopt($ch, CURLOPT_URL, $url);
  33.    
  34.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата
  35.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// просто отключаем проверку сертификата
  36.     //curl_setopt($ch, CURLOPT_SSLVERSION,2);
  37.    // curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  38.    
  39.    
  40.     curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
  41.     curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  42.         'j_username'=>'fidonet1',
  43.         'j_password'=>'099112',
  44.         'action'=>'Вход',
  45.         ));  
  46.    
  47.     curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie_page'); //Куки раз
  48.     // curl_setopt($ch, CURLOPT_COOKIEJAR,  $_SERVER['DOCUMENT_ROOT'].'/cookie'); //Куки два
  49.      
  50.        
  51.         // Установить условие загрузки, если не было нормальной загрузки
  52.    echo $str_page = curl_exec($ch);
  53.    
  54.    echo curl_error($ch);
  55.    die;
  56.    
  57.     curl_close($ch);
  58. }
  59.  
  60. function curlOption($referer = false)
  61. {
  62.     $curlOptions = array(
  63.         CURLOPT_USERAGENT        => getRandomUserAgent(),
  64.  
  65.         CURLOPT_VERBOSE          => 2, // уровень информирования
  66.         CURLOPT_HEADER           => array(),
  67.         CURLOPT_FOLLOWLOCATION   => 1, // следовать редиректам
  68.  
  69.         //CURLOPT_MAXREDIRS        => 7, // максимальное число редиректов
  70.         //CURLOPT_AUTOREFERER      => 1, // при редиректе подставлять в «Referer:» значение из «Location:»
  71.        
  72.         );
  73.            
  74.         return $curlOptions;    
  75.     }
  76.    
  77. /**
  78. * Формировани random user agent
  79. *
  80. * @return string Заголовок имени броузера
  81. */
  82. function getRandomUserAgent()
  83. {
  84.     $UA = array (
  85.         "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36",
  86.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36",
  87.         "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36",
  88.         "Mozilla/4.01 (compatible; MSIE 6.0; Windows NT 5.1)");
  89.        
  90.         srand((double)microtime()*1000000);
  91.        
  92.     return $UA[rand(0,count($UA)-1)];
  93. }
  94.  
  95. Download_Page();
  96. Download_Main_Page();

(Добавление)
У кого получится отпишите в ЛС.
 
 Top
Panoptik
Отправлено: 01 Августа, 2014 - 23:25:34
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




ошибка в опции HEADER попутали с HTTPHEADER

PHP:
скопировать код в буфер обмена
  1. $url = 'https://pass.rzd.ru/timetable/j_security_check';
  2. $fields = array(
  3.     'j_username'=>'fidonet1',
  4.     'j_password'=>'099112',
  5.     'action'=>'Вход',
  6. );
  7. $cookieFile = $_SERVER['DOCUMENT_ROOT'].'/cookie_page';
  8.  
  9. $ch = curl_init($url);
  10. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
  11. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
  12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  13. curl_setopt($ch, CURLOPT_HEADER, 1);
  14. curl_setopt($ch, CURLOPT_USERAGENT,
  15.     'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
  16. curl_setopt($ch, CURLOPT_POST, 1);
  17. curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  18.  
  19. $result = curl_exec($ch);
  20.  
  21.  
  22. var_dump($result);
  23.  


-----
Just do it
 
 Top
JamesHound
Отправлено: 02 Августа, 2014 - 06:10:02
Post Id


Новичок


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


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




Вообщем прошли авторизацию ?
 
 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