http://www.domain.com/profile
과 같은 페이지에 액세스하려고합니다. 작업 및 로그인 URL은 동일하므로 인증을 위해 쿠키를 http://www.example.com/cookies.txt
에 저장하려고합니다. 여기에 내가 사용하고 코드입니다 : 컬 요청이 성공적으로 같은쿠키를 사용하여 cURL PHP 요청시 무단 액세스
$loginURL = 'http://www.domain.com/login';
$COOKIE_FILE = 'http://wwww.example.com/cookies.txt';
$postValues = array(
'username' => 'myusername',
'password' => 'mypassword'
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $loginURL);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postValues));
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_COOKIEJAR, $COOKIE_FILE);
curl_setopt($curl, CURLOPT_USERAGENT, 'Chrome/35.0.2309.372');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_REFERER, $loginURL);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_exec($curl);
if(curl_errno($curl)){throw new Exception(curl_error($curl));}
// now we are logged in, attempt to access a password-protected page
curl_setopt($curl, CURLOPT_URL, 'http://www.domain.com/profile');
curl_setopt($curl, CURLOPT_COOKIEJAR, $COOKIE_FILE);
curl_setopt($curl, CURLOPT_USERAGENT, USER_AGENT);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
echo curl_exec($curl);
것 같다,하지만 난 "무단 액세스"라는 서버에서 페이지를 에코 얻고있다. 내 쿠키 시스템이 제대로 작동하고 있다고 생각하지 않습니까? 어떻게 확인할 수 있습니까? 어떻게 수정해야합니까?
나는 이것을 시도했지만 작동하지 않았다. 'echo file_get_contents ($ COOKIE_FILE)'로 내 $ COOKIE_FILE 내용을 볼 수 있어야하지만 비어 있습니다. – Wagtail
쿠키 데이터를 보내지 않음으로써 의미를 설명 할 수 있습니까? 내가 어떻게 그럴 수 있니? – Wagtail
방금 첫 번째 문장을 다시 말하려고했습니다. 파일에서 읽을 쿠키 파일이 필요합니다. 하지만 파일을 만들 수없는 이유를 모르겠습니다. 어쩌면 로컬 파일을 먼저 사용해 보시겠습니까? 또는 CURLOPT_VERBOSE를 CURLOPT_STDERR과 함께 사용하십시오. – jh1711