2010-04-06 5 views
1

다음 코드를 사용하여 로그인 양식으로 게시물 데이터를 보낸 다음 해당 페이지를 브라우저에서 로그인 한 사용자로 다시로드하려고합니다. 어떻게 든 쿠키를 저장하지 않고 header() 함수로 재사용하면 헤더 정보와 함께 curl을 다시 호출하여 헤더를 다시 처리 할 수 ​​있습니까?
불가능 피싱과 같은curl을 통해 로그인 한 다음 해당 페이지를 엽니 다.



.. 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false); 
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']); 
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 

// Apply the XML to our curl call 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

$data = curl_exec($ch); 

setcookie($cookie); 
header('location: ' . $url); 

die(); 

+1

인가? 그렇지 않다면 불가능합니다. 그렇다면 나는 그것을 얻지 못한다. 또한 누군가가 결국 죽을 이유가 없습니다. – zaf

답변

3

cURL을 사용하여 로그인 할 수 있습니다. cURL을 사용하여 수행해야하는 작업을 수행하십시오. 이 쿠키를 복원하고 나중에 다시 사용할 수 있는지 확실하지 않습니다. cURL에서 쿠키의 식별자로 문자열을 전달할 수 있습니다. 다른 곳에서 쿠키를로드하는 데 사용할 수 있는지 확신 할 수 없습니다. 어쩌면, 그렇지 않을 수도 있습니다. 그러나 다음 코드는 잘 작동합니다. 적어도 내가 필요한 것들을 위해서.

행운을 빈다. 이 같은 도메인에 대한

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/login.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=" . $login . "&password=" . $password . "&submit=submit"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$response= curl_exec ($ch); 
curl_close($ch); 
당신이이 도메인에서 수행하고자하는 다른 모든 행동에 대해 동일한 쿠키 키를 사용할 필요가 잊지 마세요

..

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/datapageyouneed.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$reponse= curl_exec ($ch); 
curl_close($ch); 
1

.
사용자가 직접 로그인 할 수 있습니다.

+3

당신은 거의 하이쿠를 얻었지만 5-7-5가 아니라 5-5-7입니다. –

+0

나는 이것을 자바 스크립트에서 지금 할 수 있어야한다. –

관련 문제