Я пытаюсь прочитать html-страницу, используя простой html dom, для которого требуется авторизация входа.
например: http://example.com/login/ - страница входа в систему, а http://example.com/page/ - это где я должен разбирать html.
Поэтому я использовал завиток, чтобы выполнить логин и простой html dom для разбора.
Но я не знаю, зарегистрирована ли моя страница или нет, потому что когда я показываю ответ от curl, это содержимое страницы входа!
Я просматривал стек по всем связанным вопросам в течение многих часов, но я не мог найти, что происходит не так.
ниже мой код
<?php
$curlPost['username']="username";
$curlPost['password']="pass";
$curlPost['token']="xxxxxxxxxx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , "http://example.com/login/");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
$response= curl_exec ($ch);
curl_close($ch);
И код для извлечения html-страницы
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , "http://example.com/page/");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
$reponse= curl_exec ($ch);
curl_close($ch);
echo $response;
?>
Ниже я получаю ответ в верхней части моей страницы:
HTTP/1.1 302 Найдено
Дата: ср, 28 янв 2015 06:59:44 GMT
Сервер: Apache
X-Powered-By: PHP/5.3.3
Cache-Control: no-cache
Откуда:
Передача-кодирование: chunked
Content-Type: text/html; кодировка = UTF-8
HTTP/1.1 200 OK
Дата: ср, 28 янв 2015 06:59:45 GMT
Сервер: Apache
X-Powered-By: PHP/5.3.3
Cache-Control: no-cache
Передача-кодирование: chunked
Content-Type: text/html; кодировка = UTF-8
а затем содержимое html страницы входа в систему.
Любой может посоветовать мне, что я делаю неправильно.
Я запускаю это в своем локальном хосте с местом назначения, размещенным на сервере.
И я не видел никаких изменений, происходящих с файлом "cookies.txt".
Большое спасибо.
Это выглядит как обычный выход для меня. Если вы не хотите заголовки, не устанавливайте CURLOPT_HEADER