2012-01-05 15 views
-2

私の問題の解決策を見つけることを試みています。「curl_setopt」などでonetherファイルにクッキーを設定します

別のファイルにCookieを設定する必要があります。私は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

ok私の質問を編集しました... –

+0

あなたの実際の目標はまだ不明です。最初のファイルで 'setcookie'を使うだけで何が問題になりますか?これがどのように振る舞うのか、どのような状況で設定するのかを説明してください。 (編集されたコードは何も説明していません) – mario

答えて

0

次のスクリプトのCookieはsetcookie()でのみ設定できます。他の選択肢はありません。 - cURLは別の要求を別のページに送信しますが、クライアント(ブラウザ)でCookieを設定することはできません。

エラーはHeaders already sent (reference answer)で説明されています。ページの書き換えができない/できない場合は、ob_start()回避策をお試しください。

+0

あなたはリンクを読んでいますか? – mario

+0

あなたは正しいです...申し訳ありませんが私は...しかし、私は今それを読んでいません。そしてありがとう。しかし面白いのは、私はセッションの開始とヘッダーの後にsetcookieを試してみて、それが動作しているということです!私はうまく働くことを願っています。 –

関連する問題