2011-11-13 6 views
1

나는 기능을 컬와 PHP 을이되어 사용하여 로그인 원격으로 다른 웹 사이트에 어떻게 사용하는 데 사용되는 간단한 기능이CURL 로그인 기능으로 만든 쿠키를 삭제 하시겠습니까?

그것의 을 로그인 문제없이 작업
public function Curllogin($url,$data,$proxy,$proxystatus) 
    { 
     $login = curl_init(); 
     curl_setopt($login, CURLOPT_COOKIEJAR,$this->SetCookieFile); 
     curl_setopt($login, CURLOPT_COOKIEFILE,$this->SetCookieFile); 
     curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
     curl_setopt($login, CURLOPT_TIMEOUT, 40); 
     curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); 
     if ($proxystatus == 'on') { 
      curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE); 
      curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE); 
      curl_setopt($login, CURLOPT_PROXY, $proxy); 
     } 
     curl_setopt($login, CURLOPT_URL, $url); 
     curl_setopt($login, CURLOPT_HEADER, TRUE); 
     curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
     curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE); 
     curl_setopt($login, CURLOPT_POST, TRUE); 
     curl_setopt($login, CURLOPT_POSTFIELDS, $data); 
     ob_start(); // prevent any output 
     return curl_exec ($login); // execute the curl command 
     ob_end_clean(); // stop preventing output 
     curl_close ($login); 
     unset($login); 
    } 

하지만 거기에 내가 을 발견 작은 문제 예를 들어 example.com에 로그인하고 $ 데이터 변수 에 아무런 문제없이 로그인 할 것입니다. 하지만 다른 사용자 이름과 암호를 사용하여 $ 데이터 값을 변경하면 이전 사용자 이름과 암호로 로그인하게됩니다. 마지막 로그인에 사용 된 새로운 로그인 정보를 무시합니다. 나는 시도했습니다. cookies.txt 파일을 삭제하고 스크립트를 다시 만들게하는 것과 같은 것 브라우저 캐시 된 쿠키를 지우려고했는데 새 사용자 이름과 비밀번호를 사용할 때마다 새 데이터 을 사용하도록 변경하지 않습니다. 내가 로그인하는 데 사용한 은 CURL이 만든 쿠키를 파괴 할 수있는 기능이 있습니까?

답변

0

$this->SetCookieFile을 임시 파일의 빈 파일로 변경하면됩니다. "실제"브라우저의 쿠키는 이와 관련이 없으며 cURL은 쿠키를 별도로 관리합니다.

+0

당신을 잡았습니까? – Marco

+0

당신은 $ this-> SetCookieFile을 null로 설정하는 또 다른 함수를 생성하고 로그 아웃 할 때마다이 함수를 호출한다는 것을 의미합니까? – Marco

+0

'CURLOPT_COOKIEJAR' /'CURLOPT_COOKIEFILE'은 cURL이 수신 된 모든 쿠키를 저장하고 필요에 따라 모든 요청을 보내기 위해 쿠키를 가져 오는 파일입니다. 브라우저의 쿠키를 정리하는 비유는 해당 파일을 비우는 것입니다. – deceze

관련 문제