2015-12-28 5 views
1

Итак, я создаю скрипт, который автоматически войдет в систему пользователя на удаленном сайте. это работает так, как ожидалось, но когда пользователь просматривает любые страницы на удаленном сайте, он просит просить пользователя снова войти в систему.curl login и просмотреть остальную часть сайта

как предотвратить это? возможно ли это сделать? вот текущий код:

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL=>$url, 
    CURLOPT_HEADER=>false, 
    CURLOPT_RETURNTRANSFER=>true, 
    CURLOPT_FOLLOWLOCATION=>true, 
    CURLOPT_POST=>true, 
    CURLOPT_POSTFIELDS=>$login, 
    CURLOPT_COOKIEFILE=>$rootPath.'/tmpfile/cookie.txt', 
    CURLOPT_COOKIEJAR=>$rootPath.'/tmpfile/cookie.txt' 
)); 

$content = curl_exec($ch); 

ответ

0

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

curl_close($ch); 

Если это еще не решит вашу проблему, вы можете отладить свой код для следующих целей.

1) Проверьте, что у вас есть в файле cookie.txt. Вы можете распечатать содержимое файла сразу после запроса на вход.

2) Запустите сценарий с включенным подробным режимом, чтобы увидеть, какие запросы отправляются для просмотра пользователями.

CURLOPT_VERBOSE => true, 

3) Вы также можете вручную скопировать кук из файла (или из браузера) и использовать его для запроса «пользователя просмотра» и проверьте, печенье работает или нет.

CURLOPT_HTTPHEADER => array("Cookie: session-x=hello-kookie"), // example 
+0

Я вижу ... но будет ли это работать, если я положу скрипт для автоматического входа в iframe, а затем пользователю просто нужно щелкнуть меню, существующее на удаленном сайте после входа? потому что в настоящее время сценарий так же, как я сказал. –

Смежные вопросы