PHP cURL Изменение местоположения - PullRequest
2 голосов
/ 29 марта 2011

Я использую cURL для отображения содержимого страницы за системой входа в систему.Я могу успешно войти в систему и отобразить первую страницу за системой входа в систему, но все последующие страницы не могут быть отображены.

Мое понимание проблемы состоит в том, что cURL следует заголовкам, которые предоставляются после входа в систему.Итак, если порядок - login.php -> home.php, и я хочу перейти к account.php, мне нужен еще один заголовок, указывающий на эту страницу.

Это правильно?Могу ли я использовать cURL для отображения содержимого других страниц после входа в систему?

Ответы [ 3 ]

3 голосов
/ 29 марта 2011

Возможно, вам нужно сохранять и передавать файлы cookie.Это можно сделать в PHP cURL следующим образом:

$ch = curl_init();

// set your regular options
curl_setopt($ch, CURLOPT_URL, 'http://somedomain.com/login.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('user'=>'foo', 'pass'=>'bar'));

// set where cookies are saved
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');

// set where cookies are retrieved from when sent to the server
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

// execute login
curl_exec($ch);

// do another request
curl_setopt($ch, CURLOPT_URL, 'http://somedomain.com/restricted_page.php');
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_exec($ch);
0 голосов
/ 29 марта 2011

Вы должны знать, как работают страницы входа (обычно). Когда вы входите на сайт, сайт будет отправлять вам файл cookie сеанса, который вы будете отправлять на сайт каждый раз, когда будете запрашивать новую страницу. Поэтому, если вы хотите эмулировать логин, вы должны хранить куки, возвращенные логином, а затем включать их в каждый второй запрос к сайту.

0 голосов
/ 29 марта 2011

Вам нужно обращаться с куки.Они необходимы для аутентификации сеанса.

Получите заголовок Cookie из первого вызова и отправьте его со всеми последующими вызовами.

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