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 :: Версия для печати :: Не получается авторизоваться CURL
Форумы портала PHP.SU » » Вопросы новичков » Не получается авторизоваться CURL

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

1. event - 14 Января, 2016 - 05:01:34 - перейти к сообщению
Есть такой код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //Рабочие данные для авторизация
  4. //Логин - relax
  5. //Пароль - 123456
  6.  
  7.  
  8. $curl = curl_init(); // инициализируем cURL
  9. /*Дальше устанавливаем опции запроса в любом порядке*/
  10. //Здесь устанавливаем URL к которому нужно обращаться
  11. curl_setopt($curl, CURLOPT_URL, 'http://panel.socbox.ru/user/');
  12. //Настойка опций cookie
  13. curl_setopt($curl, CURLOPT_COOKIEJAR, 'C:\AppServ\www\cook.txt');//сохранить куки в файл
  14. curl_setopt($curl, CURLOPT_COOKIEFILE, 'C:\AppServ\www\cook.txt');//считать куки из файла
  15. //устанавливаем наш вариат клиента (браузера) и вид ОС
  16. curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
  17. //Установите эту опцию в ненулевое значение, если вы хотите, чтобы PHP завершал работу скрыто, если возвращаемый HTTP-код имеет значение выше 300. По умолчанию страница возвращается нормально с игнорированием кода.
  18. curl_setopt($curl, CURLOPT_FAILONERROR, 1);
  19. //Устанавливаем значение referer - адрес последней активной страницы
  20. curl_setopt($curl, CURLOPT_REFERER, 'http://socbox.ru/');
  21. //Максимальное время в секундах, которое вы отводите для работы CURL-функций.
  22. curl_setopt($curl, CURLOPT_TIMEOUT, 3);
  23. curl_setopt($curl, CURLOPT_POST, 1); // устанавливаем метод POST
  24. //ответственный момент здесь мы передаем наши переменные
  25. //замените значения your_name и your_pass на соответственные значения Вашей учетной записи
  26. curl_setopt($curl, CURLOPT_POSTFIELDS, 'r=http://panel.socbox.ru/user?name=relax&pass=123456');
  27. //Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.
  28. curl_setopt($curl, CURLOPT_HEADER, 1);
  29. //Внимание, важный момент, сертификатов, естественно, у нас нет, так что все отключаем
  30. curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);// не проверять SSL сертификат
  31. curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);// не проверять Host SSL сертификата
  32. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);// разрешаем редиректы
  33. $result = curl_exec($curl); // выполняем запрос и записываем в переменную
  34. curl_close($curl); // заканчиваем работу curl
  35. echo $result; // собственно печатаем результат
  36. ?>
  37.  


Вроде все четко, но почему-то авторизация не проходит. В чем может быть проблема?
2. google_funny - 14 Января, 2016 - 10:52:49 - перейти к сообщению
Почему POST не закодирован? его нужно передавать как http_build_query() строку..
занеси все твои данные для POST в массив и и выполни функц. http_build_query() для массива данных. почитай. http://php.net/manual/ru/functio...-build-query.php

Тоже самое касается и для куки файлов. используй функции http_parse_cookie(), http_build_cookie() http://php.net/manual/ru/functio...build-cookie.php

 

Powered by ExBB FM 1.0 RC1