2009-11-26 4 views
1
$ckfile = tempnam ("/tmp", "CURLCOOKIE"); 
$useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"; 

$ch = curl_init ("website.com"); 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 

$output = curl_exec ($ch); 

웹 사이트에서 쿠키를 설정 한 다음 리디렉션합니다. 이 코드로 충분합니까? 쿠키가 제대로 나오지 않는 것 같습니다. 어떻게 설정되어 있는지 확인할 수 있습니까? 더 나은 아직, 내가 원하는 쿠키가 무엇인지 알고 있다면 그냥 만들 수 있을까요?cURL : 쿠키가 올바르게 설정되어 있는지 어떻게 알 수 있습니까?

편집 : 내 CURL 스크립트가 웹 사이트를 제대로 방문합니까? 웹 사이트는 유효성 검사를 위해 쿠키를 설정하고 cURL 스크립트가 쿠키를 제대로 수신하는지 확인하려고합니다. 테스트가 필요한지 알고 싶습니다. 그리고/또는 웹 사이트의 유효성을 검사하기 위해 쿠키를 만들 수 있는지 알고 싶습니다.

+0

게시하기 전에 실제로 내 게시물을 읽어야합니다. – Strawberry

답변

1

나는 최근에 내가 서버간에 쿠키를 전달하는 데 필요한 프로젝트를했고, 나는 같은 파일에 모두 CURLOPT_COOKIEFILECURLOPT_COOKIEJAR을 설정하는 것은 속임수를 썼는지 것을 발견했다.

원격 사이트의 쿠키가 설정되어 있는지 확인하려면 텍스트 편집기에서 CURLOPT_COOKIEJAR 파일을 볼 수 있어야합니다.

1

커맨드 라인 커일 경우 -v 매개 변수에 넣으십시오. > Cookie:으로 시작하는 줄에주의하십시오.

curl_setopt($ch,CURLOPT_VERBOSE,TRUE);//and set CURLOPT_STDERR to STDOUT 

그리고 이것은 브라우저 인 경우에 나는이 중 하나를 디버깅 할 것이다 :

이의 PHP 버전은 파이어 폭스에서 IE, TamperData 또는 Firebug (net)Fiddler을 사용할 수 있으며, 관리자 on Chromeon Safari 또는 브라우저가있는 proxy을 사용하여 "일반"브라우저에서 양식을 제출하는 방법을 확인하십시오.

PHP의 컬을 사용하도록 설정하면 프록시 접근 방식이 작동 할 수 있습니다.

curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,TRUE);//& CURLOPT_PROXYPORT CURLOPT_PROXY 

당신은 단지 하나 개의 요청에 쿠키를 추가 할 경우 같은 라인을 작성할 수 있습니다

$ch->headers[] = 'Cookie: recent=543..; _session_id=6185..; __utma=572.1.1.1.1; __utmc=572..; __utmz=572.1.1.1.1.utmccn=(referral)|utmcsr=domain.com|utmcct=/request/path|utmcmd=referral'; 

를하지만 이들은 같은 라인을 따라 더있을 수 있습니다, 그 일에 대해 확실하지 않다 :

curl_setopt($ch,CURLOPT_COOKIE,"recent=543..; _session_id=618.."); 
// Possibly, but I think this might overwrite other headers. 
curl_setopt($ch,CURLOPT_HTTPHEADER, "Cookie: recent=543..; _session_id=6185.."); 
+0

불행히도 귀하의 질문에 구체적으로 작용하지 않는 것이 혼란 스럽습니다. 쿠키 항아리에 쿠키를 받고 그 쿠키를 사용하고 있는지 확인하고 싶습니까? 그런 다음 자세한 정보 또는 프록시 방법을 사용합니다. – dlamblin

관련 문제