2013-10-05 2 views
1

나는 captcha를 가져 오는 함수를 작성하고 있지만 물론 세션을 유지해야합니다. 나는 curl을 위해 쿠키 파일을 사용하고 모든 요청에 ​​사용하지만 작동하지 않습니다. 쿠키 파일을 볼 때 함수를 호출 할 때마다 PHPSESSID가 변경된 것을 볼 수 있습니다. 어떻게 해결할 수 있을까요? 여기 CURL을 통해 세션 ID를 유지할 수 없습니다 PHP

는 사용하지 마십시오 내 코드

<?php  
function fetch_captcha($url, $cookie_file = false, $user_agent = DEFAULT_USER_AGENT, $timeout = 10) { 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_VERBOSE, true); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 

    if ($cookie_file) { 
     curl_setopt($curl, CURLOPT_COOKIESESSION, true); 
     curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); 
     curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file); 
    } 
    curl_setopt($curl, CURLOPT_USERAGENT, $user_agent); 
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout); 

    $response = curl_exec($curl); 
    curl_close($curl); 
    return $response; 
} 

답변

1

입니다 :

curl_setopt($curl, CURLOPT_COOKIESESSION, true); 

PHPSESSID는 세션 쿠키이며,이 옵션은 새로운 세션을 시작하는 각 cURL 호출이 발생, 그래서 모두 무시 파일의 세션 쿠키

+0

이 줄을 제거했지만이 함수를 호출 할 때마다 PHPSESSID가 여전히 변경됩니다. ( –

+0

이 함수를 호출 할 때마다 쿠키 파일을 다시 만듭니다. ! –

관련 문제