ローカルサーバーでは動作しますが、プロダクションサーバーでは動作しません。私は、そのサーバー上の問題を再現するコードの最小バージョンを作りました:
<?php
if(!isset($_COOKIE['foo'])){
setcookie('foo', 'bar', time() + 7*24*60*60, '/');
echo "Cookie was not found, so we just created it.";
} else {
echo "Cookie was found!";
}
?>
どんなに私はこのページを更新回数、私はいつも「見つかりません」というメッセージが表示されますありません。 $_COOKIE
変数をログに記録しようとするたびに、空の配列が返されます。しかし:
- クッキーは、ブラウザの中に存在し、正しく要求
- で送信されたクッキーが
- (それは
path
の問題ではありません)同じファイルに設定され、読み込まれていないがありますsetcookie
前出力、およびファイルはBOM
ずにUTF8でエンコードされた私は、コードをローカルで動作しますので、これは、サーバー構成の問題だと思うが、私はどこを見れには考えています。誰もこれを見たことがありますが、これを引き起こす原因を知っていますか?
さらに詳しい情報が必要な場合は、教えてください。私は質問に追加します。ありがとうございました!
クッキーを飲み込むCDNおよび/またはキャッシングサーバー...? – deceze
サーバのphp.iniで 'variables_order'指示文を確認してください。 'C'はそれに欠けていますか? http://php.net/manual/en/ini.core.php#ini.variables-order –
@decezeワニスキャッシュが設定されていますが、このページはキャッシュされません。あなたはクッキーを飲み込むことができると思いますか? @Michael、あなたの提案をお寄せいただき、ありがとうございます。これはOKです: 'variables_order = EGPCS' – blex