2012-05-26 2 views
0

cURL (PHP 사용)에 문제가 있습니다. Bascially 웹 사이트에 로그인하여 일부 기능을 수행하고 싶습니다. 이것은 일반적으로 좋지만, 웹 사이트는 로그인 페이지에 대한 고유 URL과 해당 세션 동안 사용해야하는 로그인 페이지에 액세스 할 때마다 동적/고유 POST URL을 생성합니다.PHP cURL 쿠키 및 세션 열기

따라서 - 현재 로그인 페이지로 이동 한 후 고유 한 POST URL (검색에 성공했습니다)을 검색하기 위해 페이지를 스크랩 한 다음 POST 요청을 공식화하고 고유 URL로 디스패치합니다. 그것은 문제가 아니며 문제는 쿠키를 사용하거나 세션을 열어 두지 않는다는 것입니다 ...

첫째, 쿠키가 저장되지 않는 이유는 무엇입니까? 그 브라우저 세션을 위해서만, 어쩌면 그것은 이유가 될 수 있습니까?) .. 나는 쿠키를 저장하고 작동하는 테스트 페이지를 만들었습니다 .. 어쩌면 그것은 내 문제가 아니에요.

두 번째로 나는 세션을 계속 열려 있다고 생각하지 않습니다. 나는 전화 해요 :

$curl = curl_init(); 다음 다음 내 POST 요청을 초기화하는 $ch = curl_init($loginPostUrl);를 호출하고 그러나 모든 것이 완료

curl_close($ch); 
curl_close($curl); 

있어 마침내 후, 나는이 초기를 유지하고있다 생각하지 않는다, 독특한 POST URL을 잡아 세션이 게시 요청을하는 동안 열려 (그러므로 내가 검색 한 POST URL이 무효입니다.)

누군가가 같은 세션에서 이러한 요청을 수행하는 방법을 설명해 주시겠습니까?

죄송합니다 - 내 설명이 좋지 않아 사람들이 이해하지 못하는지 명확히하려고 노력할 것입니다.

많은 감사합니다 :) 당신이 페이지에 액세스 컬을 사용하는 경우, 브라우저에서 쿠키를

답변

3

를 저장되지 않습니다. 이것은 정상적인 현상입니다. 스크립트가 요청을 서버 측에서 수행하고 있으며 브라우저가 쿠키를 처리하는 방식과 관련이 없습니다.

원하는 것을 얻으려면 cURL의 기능을 사용하여 나중에 요청과 함께 보낼 수있는 파일에 쿠키를 저장할 수 있습니다. 이 파일을 만들거나 사용하려면 curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar); (여기서 $cookieJar은 쿠키를 저장하려는 파일의 경로입니다).

그리고 귀하의 요청과 함께 쿠키를 보낼 수는 수행

curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar); 

나는 이것이 당신의 질문에 대답 바랍니다.