2

問題は、PHP から Cookie を設定できないことです。問題をグーグルで検索して、ここでスタックオーバーフローを検索しようとしましたが、解決策はどれも機能しません。

私はもう試した:

setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', '127.0.0.1');
setcookie('user_id', $row['user_id'], false, '/', false);
setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', false);
setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', '');

私が使用しているブラウザは、Apache サーバー上の Firefox 12 と Chrome 19 です。

ご協力いただきありがとうございます。

編集: データをフェッチして Cookie に入れるときにデータベースに問題があるようですので、気にしないでください;) お時間をいただきありがとうございます!

4

1 に答える 1

2

そのコードの前に出力がないのは確かですか? すべてechoの と、include完全に PHP コードではないものを含むすべてのが出力と見なされます。

呼び出しの前に何も出力できない理由setcookie()は非常に単純です。Cookie を設定するには、サーバーがブラウザーにヘッダー命令を送信する必要があります。コンテンツ本文が既に印刷されている場合、そのヘッダーは送信できません。

コードを変更して、その呼び出しを出力の前に配置するか、単純にob_start()コードの先頭に配置することができます。この関数により、PHP はすべての出力をバッファリングし、スクリプトの終了時に出力を 1 つだけ送信します。

于 2012-05-24T15:29:29.970 に答える