После использования cURL для входа на удаленную веб-страницу, как я могу получить доступ к другой веб-странице и вернуть ее в виде строки? - PullRequest
0 голосов
/ 11 сентября 2010

Хорошо, я довольно новичок в CURL.Мне удалось войти на веб-страницу, используя cURL и отправив данные POST, но как только я войду в систему, я бы хотел, чтобы она загружала различные веб-страницы с одинаковым SESSION и извлекала данные в виде строки, чтобыпроверьте, содержит ли веб-страница определенную строку.

Как мне поступить?

Например:

Она регистрируется в http://example.com/login.php

Но после входа в систему мне нужно посетить http://example.com/site.php?page=news и вернуть содержимое этой страницы в виде строки.

1 Ответ

2 голосов
/ 11 сентября 2010

Обычно это зависит от того, как удаленный сайт обрабатывает управление состоянием.

В большинстве случаев это будет с помощью куки, поэтому вам нужно будет указать curl, чтобы отслеживать куки.

Что-то вроде:

curl_setopt($curl, CURLOPT_COOKIEJAR, '/tmp/cookies');  //where to write cookies received from server
curl_setopt($curl, CURLOPT_COOKIEFILE, '/tmp/cookies'); //where to read cookies to send in requests.

должен помочь вам начать там.

EDIT Пример вопиющего копирования / вставки ( отсюда - найдено примерно за 20 секунд поиска "php curl login"). Это выглядит примерно так:

<?php 
$url ="http://login.yahoo.com/config/login?.src=ym&.intl=us&.partner=&.done=http%3A%2F%2Fmail.yahoo.com%2F"; 
$ch = curl_init();      
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/cookie.txt'); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, "login=emailid&passwd=password&&submit=Sign In"); 
ob_start();      
curl_exec ($ch); 
ob_end_clean();  
curl_close ($ch); 
unset($ch); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "/temp/cookie.txt"); 
curl_setopt($ch, CURLOPT_URL,"http://us.f515.mail.yahoo.com/ym/login?"); 
$result = curl_exec ($ch); 

curl_close ($ch); 
echo $result; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...