시도해 보니 나는 PHPSESSID
쿠키를 넘길 수 없습니다. 몇 가지 다른 설명이있는 것과 비슷한 설정이 있지만 제안 된 솔루션 중 하나를 작동시키지 못했습니다.curl not passing phpsessid
pageA.php
에게 요청을 보내는 페이지가 있습니다. pageA.php
에는 다른 서버에있는 pageB.php
의 정보가 필요하므로 컬을 사용하고 있습니다. pageB
은 내 페이지로 들어가야하는 세션 상태를 유지합니다.
다른 쿠키를 pageA
에서 으로 전달할 수 있으며 PHPSESSID
쿠키가 아닙니다.
다음 작품
은 (쿠키는pageB
에 도착) 다음
$options[CURLOPT_COOKIE] = "myPHPSESSID=" . $sessionId;
을 다음하지 않는 :
이$options[CURLOPT_COOKIE] = "PHPSESSID=" . $sessionId;
(I은 $ 옵션 배열을 구축하고 curl_set_opt_array
에 전달)
사실, 후자는 내 전화가 curl_exec
으로 반환되지 않으므로 분별할 수없는 일종의 오류가 발생합니다 (및 pageB
에 도달하지 않습니다).
$options[CURLOPT_HTTPHEADER][] = "Cookie: myPHPSESSID=" . $sessionId;
위의 작품을 잘하지만
$options[CURLOPT_HTTPHEADER][] = "Cookie: PHPSESSID=" . $sessionId;
하지 않습니다 :
나는 또한없는 성공, 헤더를 설정하는 대신 CURLOPT_COOKIE를 사용하여 시도했습니다.
PHP는 필자가 PHPSESSID를 수동으로 설정하는 것을 원치 않습니다. 관련성이 있는지는 잘 모르겠지만 페이지 A에 대해서는 아무런 답변이 없지만 start_session()
으로 전화를 걸겠습니다.
나는 아마도 (아마) 다른 이름의 쿠키로 세션 ID를 전달하고 012B또는 비슷한 것을 호출 할 수 있음을 알고 있습니다. 그러나 나는 정말로 내가하고있는 일이 왜 작동하지 않는지 알고 싶다. 나는 오히려 해결 방법을 만드는 것보다 잘못하고있는 것을 고쳐야한다. 도움이된다면 핑 소리가 나고있는 여러 헤더의 일부 덤프를 제공 할 수 있지만이 질문은 현재 충분히 길다는 것을 알 수 있습니다.
감사합니다 ...
덕분에, 나는이 조언을보고 아무 소용이 그것을 시도하지만. 내 페이지는'start_session();'을 결코 호출하지 않으므로'session_write_close();'는 아무런 효과가없는 것처럼 보입니다. –
Hmmmm하지만 세션을 시작하지 않으면 $ sessionID가 어디서 나옵니까? 내가 Yii와 평범한 스크립트로하고 있기 때문에 PHPSESSID를 곱슬 곱슬하게 전달할 수 있습니다. 내 게시물을 스크립트로 업데이트했습니다. – JorgeeFG
아 - 불분명하게해서 죄송합니다. '$ sessionId'는 클라이언트 브라우저에서옵니다. 컬을 사용하는 PHP 페이지는 도메인 간 문제를 해결하기위한 프록시 일 뿐이므로 어떤 세션 상태도 유지하지 않습니다. 클라이언트로부터 프록시 페이지로의 각 요청에 수반되는'$ _COOKIE'에서'$ sessionId'를 읽습니다. –