2013-02-06 7 views
1

특정 URL이있는 서버에 쿠키가 있는지 확인하려고합니다. I가 대상 사이트에 로그인하고 때쿠키가 포함 된 쿠키와 함께 응답 검색

$ch=curl_init(); 
//curl_setopt ($ch, CURLOPT_COOKIE, "mm=38533;"); 
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_COOKIEFILE,'/tmp/cookies.txt'); 
curl_setopt($ch,CURLOPT_URL,'http://www.engageya.com'); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$response=curl_exec($ch); 
// get cookie 
preg_match('/^Set-Cookie:\s*([^;]*)/mi', $response, $m); 

curl_close($ch); 

var_dump(parse_url($m[1])); 
echo "<br/>".$response; 

문제는, 나는 내가 사이트에 로그인하고 있는지 확인해야합니다, 그래서 내가 실패 site..But의 쿠키를 검색하려고합니다. curlopt_cookie 옵션을 사용하려고 생각했지만 서버에서 쿠키를 반환하고 존재하는지 확인하는 쉬운 방법이 있다면 생각했습니다.

간단히 말해서 내가 서핑을 할 때 쿠키가 존재합니다. 하지만 요청이 돌아와서 인쇄 할 때 존재하지 않습니다.

+1

쿠키가 서버에 존재하지 않습니다. 그들은 고객에게 살고 있습니다. –

답변

1

대상 호스트를 사용할 수없는 것으로 보입니다. 어쩌면 URL에 오자가 있거나 정말로 사용할 수 없습니다.

curl_setopt($ch, CURLOPT_VERBOSE, 1); 

지금 나는 다음과 같은 오류를 볼 수 있습니다 : 나는 곱슬 곱슬 다음 옵션을 추가

* getaddrinfo(3) failed for www.engagya.com:80 
* Couldn't resolve host 'www.engagya.com' 

업데이트 : URL에 오타를 수정 한 후, 내가 작업 다음 예제를 가지고 :

<?php 

$ch=curl_init(); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_URL,'http://www.engageya.com/wordpress/api/?action=isloggedin&uid=22472'); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$response=curl_exec($ch); 
curl_close($ch); 

// use preg_match to get the cookie as in your question: 
preg_match('/^Set-Cookie:\s*([^;]*);/mi', $response, $m); 
var_dump($m); 
+0

나는 어떤 실수를 보이지 않습니다 .. 나는 의도적으로 사이트를 오도했습니다 .. – BlackFire27

+0

좋아, 보자. 단계별로. :) – hek2mgl

+0

문제는 쿠키가 한 번 설정 되었기 때문에 헤더가 도움이되지 않습니다. 쿠키가 서버에 있는지 확인해야합니다. 매번 쿠키가 설정됩니다. 하지만 쿠키가 설정되었다는 응답을 받고 싶지 않습니다. 이미 존재하는 쿠키를 확인하고 싶습니다. 쿠키가 서버에 저장되어 있다면 서버의 쿠키를 확인하십시오. – BlackFire27

관련 문제