2012-06-08 3 views
2

'원격 로그인'사이트를 만들려고하는데 아래 코드를 시도 할 때 쿠키가 사용 중지되고 있다는 오류가 표시됩니다. 해결책을 찾아 봤지만 해결 된 것은 없습니다. 케이스가 그것을하는 cURL 방법을 가지고 있습니다 (쿠키 항아리), 어떻게 쿠키 문제를 해결할 수 있습니까? 사이트가 필요로하는 쿠키를 어떻게 찾을 수 있습니까? (약 10 개)?PHP fsockopen() 쿠키

<?php 
$vars = array(
    'email' => "*****", 
    'pass'=>"*****" 
    ); 
$content = http_build_query($vars); 

$host = 'www.site.com'; 
$service_uri = '/login.php'; 
$vars ='login_mode=1'; 

$header = "Host: $host\r\n"; 
$header .= "User-Agent: PHP Script\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Referer: http://www.site.com \r\n"; 
$header .= "Content-Length: ".strlen($content)."\r\n"; 
$header .= "Connection: close\r\n\r\n"; 

$fp = fsockopen("".$host,80, $errno, $errstr); 

if (!$fp) 
{ 
    echo "$errstr ($errno)<br/>\n"; 
    echo $fp; 
} 
else 
{ 
    fputs($fp, "POST $service_uri HTTP/1.1\r\n"); 
    fputs($fp, $header.$content); 

    while(!feof($fp)) 
    { 
     echo fgets($fp, 128); 
    } 
    fclose($fp); 
} 
?> 
+0

동적인데, 사실이 아닙니다. HTTP 헤더를 쉽게 읽고 쿠키를 수동으로 처리 할 수 ​​있습니다. –

+1

"Set-Cookie :"헤더를 구문 분석 할 수 있다고 했습니까? – ku6pk

+0

예, Set-Cookie를 보았습니다 만 어떤 쿠키인지는 알 수 없습니다 ... – user1126068

답변

3

먼저 쿠키 헤더를 제공하는 홈페이지 URL을 요청해야합니다. 구문을 분석하여 $header 변수에 추가하여 서버로 보냅니다.

사이트에서 어떤 쿠키가 필요한지 신경 쓰지 않아도됩니다. 모든 쿠키를 보내면 미래 보장 될 수 있습니다.

자신이 직접하고 싶지 않은 경우 PEAR의 HTTP_Request2 패키지를 살펴보십시오. 쿠키 처리 기능이 내장되어 있습니다.