2012-01-05 4 views
-2

내 문제에 대한 해결책을 찾으려고 노력 중입니다.'curl_setopt'등으로 onether 파일에 쿠키를 설정하십시오.

다른 파일에서 쿠키를 설정해야하고 curl_setopt으로 시도하지만 작동하지 않습니다.

아이디어는, PHP와 같은 것을 다른 페이지에서 쿠키를 설정하는 값을 보낼 것입니다 어떤 방법 :

file1.php 

    <? //start php 
    //at the begining of the file i have 
session_start(); 
header('Content-Type: text/html; charset=utf-8'); 
//if i set a cookie now it give me an error cause i can not change the header 
//but because i need to set a cookie now without leaving this file 
//i tryed to set it in file2.php this way: 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $SITE_HOME_DIR ."login.php"); 
// Do a POST 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, '[email protected]'); 
curl_close($ch); 
    ///end php 
    ?> 

    file2.php 
    <? 
//just set cookie 
setcookie("TestCookie", $_POST['email'], time()+3600) 
?> 

그러나이 doesn'work ....

어떤 아이디어? 고맙습니다.

+1

"다른 파일"또는 "다른 페이지"라는 개념을 설명해야합니다. 쿠키는 ['setcookie'] (http://php.net/curl_setopt)가 아니라 ['curl_setopt']를 사용하여 정상적으로 설정됩니다 (http://php.net/setcookie). – mario

+0

좋아요, 제 질문을 편집했습니다 ... –

+0

실제 목표가 무엇인지 아직 명확하지 않습니다. 첫 번째 파일에서'setcookie'를 사용하는 것과 관련된 이슈는 무엇입니까? 어떤 상황에서 이것이 어떻게 행동 할 것이라고 기대하는지 설명하십시오. (편집 된 코드는 아무 것도 설명하지 않습니다.) – mario

답변

0

setcookie()으로 다음 스크립트의 쿠키 만 설정할 수 있습니다. 다른 옵션은 없습니다. - cURL은 별개의 요청을 다른 페이지로 보내지 만 클라이언트 (브라우저)에서 쿠키를 설정할 수는 없습니다.

오류는 Headers already sent (reference answer)에 설명되어 있습니다. 페이지를 다시 작성할 수 없거나 다시 작성할 수없는 경우 언급 된 ob_start() 해결 방법은 운이 좋았거나 없을 수 있습니다.

+0

링크를 읽었습니까? – mario

+0

당신 말이 맞아요 ... 미안하지만 .. 지금 읽었어요. 그리고 고마워. 하지만 재미있는 점은 세션 시작과 헤더가 끝나면 setcookie를 시도하고 작동한다는 것입니다. 나는 계속 잘할 수 있기를 바랍니다. –

관련 문제