использовать один и тот же файл cookie для двух веб-сайтов, используя расширение PHP cURL - PullRequest
2 голосов
/ 17 мая 2010

Я хочу получить содержимое некоторых писем в моей учетной записи Gmail.Я хотел бы использовать расширение PHP cURL, чтобы сделать это.Я выполнил следующие действия в своей первой попытке:

  1. В коде PHP выведите содержимое https://www.google.com/accounts/ServiceLoginAuth.
  2. . В браузере пользователь вводит имя пользователя и пароль для входа в систему.
  3. В коде PHP сохраните файлы cookie в файле с именем cookie.txt.
  4. В коде PHP отправьте запрос на номер https://mail.google.com/ вместе с файлами cookie, полученными из файла cookie.txt, и выведите их.содержание.

Следующий код не работает:

$login_url = 'https://www.google.com/accounts/ServiceLoginAuth';
$gmail_url = 'https://mail.google.com/';
$cookie_file = dirname(__FILE__) . '/cookie.txt';

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $login_url);
$output = curl_exec($ch);
echo $output;

curl_setopt($ch, CURLOPT_URL, $gmail_url);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$output = curl_exec($ch);
echo $output;

curl_close($ch);

1 Ответ

4 голосов
/ 17 мая 2010

Ваш подход неверен. Вы не можете извлечь содержимое https://www.google.com/accounts/ServiceLoginAuth и вывести его, ожидайте, что пользователь заполнит данные и нажмите кнопку входа. Поскольку форма определяется как

<form action="https://www.google.com/accounts/ServiceLoginAuth" method="post">

данные для входа будут переданы браузером на эту страницу, и ваш скрипт никогда не получит куки. Вам необходимо отправить запрос на https://www.google.com/accounts/ServiceLoginAuth уже с именем пользователя и паролем . Только тогда curl получит ответ с куки.

Тем не менее, я бы посоветовал вам очистить все это, включить IMAP в GMail и использовать его для доступа к вашей электронной почте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...