2014-07-10 2 views
0

몇 가지 작업이 있습니다. 나는 컬을 통해 사이트의 승인을 받아야합니다. 하지만 제가 사용했던 모든 것은 - 잘못되었습니다.일부 사이트의 인증 컬 PHP

수정 방법을 알려주십시오. 이 사이트에서 작업해야하기 때문에. 감사합니다.

+0

로그인 페이지의 게시물을 통해 인증을 제대로하고 있습니까? 아니면 httpd 인증을 수락합니까? 나는 또한 귀하의 포스트 필드가 실제로 사용자 이름과 암호라고 가정하므로 문자열은 username = login [username] =이 아니어야합니다. – Dave

답변

0

일부 쿠키 정보를 얻고 로그인하려면 먼저 페이지를 가져와야합니다. 귀하의 자격 증명을 사용하고 아래의 코드를 테스트하고 확인 된 상태로 로그인했습니다. 바라건대 내가 한 짓을 이해할 수 있기를 바랍니다.

'http://www.kinguin.net/customer/account/login'에 대한 초기 말림 요청이 없으면 쿠키가 필요합니다. 방문 페이지가 필요합니다. 이 페이지를 웅크 리고 나면 로그인 할 수 있습니다.

또한 로그인 페이지는 실제 로그인 양식이 ('http://www.kinguin.net/customer/account/loginPost/')에 게시되고 질문에없는 글입니다.

$firsturl = 'http://www.kinguin.net/customer/account/login'; 

$ch = curl_init(); 
$useragent="Fake Mozilla 5.0 "; 
$cookie_jar = tempnam ("/tmp", "kinguin"); 
curl_setopt($ch, CURLOPT_URL, $firsturl); 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
$result = curl_exec($ch); 
$redir = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 
curl_close($ch); 


$loginurl = 'http://www.kinguin.net/customer/account/loginPost/'; 
$fields = array('login[username]' => urlencode('[email protected]'),'login[password]' => urlencode ('78955123')); 

//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $loginurl); 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
curl_setopt($ch, CURLOPT_POST, count($fields)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
$result = curl_exec($ch); 
$redir = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 
curl_close($ch); 

echo $result;