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 :: автоматическая авторизация не работает

 PHP.SU

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


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

> Без описания
kixaka
Отправлено: 27 Июля, 2007 - 07:58:48
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2007  


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




автоматическая авторизация на дружественном сайте

Нужно чтобы при заходе на определенную страницу моего сайта, открывалась внутренняя страница дружественного сайта. НО для того чтобы попасть на страницу этого сайта нужно авторизоваться. Авторизация там сделана с использованием РНР и метод отправки данных POST. Причем не надо вводить цифровых кодов с картинок и прочего. ТОлько логин и пароль.
так не работает что я делаю не правильно?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. // инициализация сеанса
  4. $ch = curl_init ();
  5. curl_setopt($ch , CURLOPT_URL , "https://b2b.kloss.ru/personal/txtoffer.php" );
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // отключение сертификата
  7. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // отключение сертификата
  8. // отправка логина и пароля
  9. curl_setopt($ch, CURLOPT_HEADER, 1); // отображение шапки
  10. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  11. curl_setopt($ch, CURLOPT_POST, 1); // метод POST
  12. curl_setopt($ch, CURLOPT_POSTFIELDS, "USER_LOGIN=xxx&USER_PASSWORD=xxx&submit=Login ");
  13. // данные для отправки
  14. // загрузка страницы и выдача её браузеру
  15. curl_exec ($ch );
  16. // завершение сеанса
  17. curl_close ($ch );
  18. ?>
  19.  
 
 Top
kamikadze
Отправлено: 27 Июля, 2007 - 13:33:58
Post Id



Склонен к самоубийству


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


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




Не очень всё ясно, и через курл делать - глупо и не рационально
 
 Top
kixaka
Отправлено: 28 Июля, 2007 - 13:12:57
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2007  


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




kamikadze пишет:
Не очень всё ясно, и через курл делать - глупо и не рационально


было бы мне все ясно,не было бы вопросов.

А через что делать? и как?
 
 Top
kamikadze
Отправлено: 28 Июля, 2007 - 15:42:54
Post Id



Склонен к самоубийству


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


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




Ну раз он дружественный, просто попросите чтоб все заходы с вашего сайта авторизировались автоматом.
 
 Top
valenok Модератор
Отправлено: 30 Июля, 2007 - 11:10:45
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




kamikadze
Цитата:
через курл делать - глупо и не рационально

не понял ..


kixaka
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

с этим у меня были некоторые проблемы. Тоже не хотело переносится куда надо.
Я включал CURLOPT_HEADER 1 потом вычитывал оттуда PHPSESSID
и проверял на наличие строки Location: main.php
а потом порсто запрашивал main.php вместе с сессией.

Разбираться у меня времени не было, а сейчас уже не нужно.

Выглядело так:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.  
  5. function login(){
  6.         global $ch;
  7.          
  8.         curl_setopt($ch, CURLOPT_URL, "http://www.--.ru/login.php");
  9.         curl_setopt($ch, CURLOPT_POST, 1);
  10.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  11.         curl_setopt($ch, CURLOPT_POSTFIELDS, 1);
  12.         curl_setopt($ch, CURLOPT_POSTFIELDS,"login=&pass=");
  13.         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
  14.         curl_setopt($ch, CURLOPT_HEADER, 1);
  15.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16.         $qwe = curl_exec($ch);
  17.         $qwe = substr($qwe,strpos($qwe,"Set-Cookie"),250);
  18.         if(strpos($qwe,"Location: home.php")===False) stop('Login incorrect');
  19.         return $qwe;
  20. }
  21.  
  22.  
  23.  
  24. function getsess($headers){
  25.         $start = strpos($headers, 'PHPSESSID');
  26.         $end = strpos($headers," ",$start);
  27.         $ssid = substr($headers,$start,($end-$start));
  28.         return substr($ssid,0,-1);
  29. }
  30.  
  31.  
  32.  
  33.  
  34. function getPage($page){
  35.         global $ch,$ssid;
  36.         curl_setopt($ch, CURLOPT_URL, $page);
  37.         curl_setopt($ch, CURLOPT_HEADER, 0);
  38.         curl_setopt($ch, CURLOPT_COOKIE, $ssid);
  39.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
  40.         curl_exec($ch);
  41.  
  42. }
  43.  
  44. $ch = curl_init();          echo "Curl intialized"."rn";
  45. $headers = login();         echo "Logging in"."rn";
  46. $ssid = getsess($headers);  echo "Session received. Logged in."."rn";
  47. getPage('htp://.. .ru/main.php');
  48.  



-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB