2011-09-22 9 views
1

내 응용 프로그램 내의 스크립트간에 데이터를 보내려고합니다.php로 URL을 보내십시오. cUrl

세션 ID가 응답하지 않습니다.

<?php 
     session_start(); 

     $_SESSION['id'] = 1; 

     $data = "data to be sent to script"; 

     $ch = curl_init("http:.../myscript.php"); 

     $nvp = "&data=$data"; 

     curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp); 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

     echo curl_exec($ch); 

     ?> 

인 myscript.php이 스크립트 1 인

...

 <?php 

     session_start();   

     $id = $_SESSION['id']; 

     $data = $_POST['data']; 

     $result = function idData($id, $data); // returns matching results. 


     echo "Session Id = $id <br />"; 


     echo "Id result = $result <br />"; 

     ?> 

그러나 인 myscript.php 정상에 따라 세션 데이터에 액세스 할 수 없습니다.

해결 방법이 있습니까? 가능한 원인은 무엇일까요?

덕분에

답변

5

을 찾고 생각합니다.

세션을 만드는 myscript.php에 여러 요청을 보내려는 경우 스크립트 1에서 session_start가 필요하거나 필요하지 않다고 생각합니다. 스크립트 1

사용이 :

curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); // set cookie file to given file 
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); // set same file as cookie jar 

그리고이 정상적으로 요청을합니다. 요청이 완료되면 myscript.php로 설정된 모든 쿠키가 쿠키 jar 파일에 저장되고 요청을 보내기 전에 쿠키가 전송되는지 확인됩니다.

curl 요청에서 php 세션 쿠키를 수동으로 추적하고 CURLOPT_COOKIE을 사용할 수도 있습니다.

3

나는 당신이 응답 자신의 세션 ID를 추적 할 경우 CURLOPT_COOKIE를 사용할 수 있습니다 당신은 스크립트 1에서 CURLOPT_COOKIE

curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id()); 
+0

을 나는 당신이에 받고 있지만, 다른 한편으로, 특히 아무것도 잡힐 필요가 이드가 세션을 무엇을 얻을 측면?? – Christopher

+0

시도해보고 알려주세요. – Louis

+0

그래, 내가 dosent 작품을 가지고 ... 나는 아직도 꽤 cURL 메신저로 혼란스러워 함수 라이브러리에 읽었 ... 내가 원본 스크립트에서 myscript.php로 보낼 때 서버가 응답을 중단 ... 그리고 그냥 거기에 앉아서 '로컬 호스트를 기다리고 ...'. 서버가 참조 할 수 있도록 쿠키 파일을 첨부해야합니까 ?? 또는 $ _POST 변수로 세션 이름과 ID를 참조 할 수 있습니까? – Christopher

-2

게시물을 사용하기위한 하나의 옵션 매개 변수가 누락되었습니다. 이 하나를 추가하십시오, 그것을 작동합니다 : curl_setopt($ch, CURLOPT_POST, true);

관련 문제