- ベストアンサー
クッキーの利用不可の問題
- xfreeのphpサーバーを利用している場合、クッキーの利用ができずにエラーが発生することがあります。
- 特に、Warning: Cannot modify header informationというエラーメッセージが表示されることがあります。
- このエラーの原因は、クッキーを使用する前にすでに出力が行われているためです。phpファイルの先頭にある空白や改行、またはBOMなど、不要な文字がクッキーの利用を妨げる可能性があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
https://www.xfree.ne.jp/manual/man_server_phpini_setting_item.php php.iniの説明を見てみたのですが。 最初の画像ので、あってる感じがしますね。 このサーバー特有の問題かもしれません。 xfreeのサポートに聞いてみるのもありかもしれません。。
その他の回答 (3)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
なるほど(みるかぎり、あってますね) https://www.php.net/manual/ja/function.setcookie.php <?php setcookie("TestCookie", "", time() + 3600); のみでは、どうなりますか? (エラーが出るかだけを試したいので、以後の表示などは一切なしで) 時間が空いたら、xfree??とかいうサーバーで 似たような事例がないか調べてみますよ。
補足
ありがとうございます。 上記のみのコードでも同じエラーが起きました。 すみません。 コードはあっているので、サーバーの設定が原因かなと思いphp.iniをいじろうと思いました。
- t_ohta
- ベストアンサー率38% (5238/13705)
原因は https://okwave.jp/qa/q9853019.html の時と同じです。
お礼
ありがとうございます。 そう思い今回は、phpのみ書いてみたのですが 質問文のようなエラーが出てしまいます。 一応、ソースコード <?php $result = setcookie("sample", "初めてのクッキー", time() + 60 * 60); if($result) { echo "<p>Cookie を保存しました。</p>"; }else{ echo "<p>Cookie を保存できませんでした。</p>"; } if(isset($_COOKIE["sample"])) { echo "Cookie の内容:" .htmlspecialchars($_COOKIE["sample"], ENT_QUOTES); }else{ echo "Cookie はありません。"; } ?>
補足
ありがとうございます。 そう思い今回は、phpのみ書いてみたのですが 質問文のようなエラーが出てしまいます。 一応、ソースコード <?php $result = setcookie("sample", "初めてのクッキー", time() + 60 * 60); if($result) { echo "<p>Cookie を保存しました。</p>"; }else{ echo "<p>Cookie を保存できませんでした。</p>"; } if(isset($_COOKIE["sample"])) { echo "Cookie の内容:" .htmlspecialchars($_COOKIE["sample"], ENT_QUOTES); }else{ echo "Cookie はありません。"; } ?>
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>下記の画像php.iniはどのように設定すればいいですか? なぜ、php.iniをいじろうとしてるのかが、よくわかりませんが。 どこかにそれをやれと、書いていたのであれば、 その通りやるわけですが。 エラー内容は、そうではなく、クッキーの設定以前に コンテンツを送り出しているというエラーが出ています。 各種クッキーやセッション系の命令を先頭に書いてますか? (それより前に表示を含むソースがあれば、 必ずこのエラーになります) なので、1行のみクッキー関連の命令を書いてみて、 動作確認してみてはいかがでしょうか。 大抵それで、治るというか問題点が解決していくケースが多いかと 思います。 ひとまず、コンテンツボディーよりも前に送り出せば大抵 成功しますよ。
補足
ありがとうございます。 そう思い今回は、phpのみ書いてみたのですが 質問文のようなエラーが出てしまいます。 一応、ソースコード <?php $result = setcookie("sample", "初めてのクッキー", time() + 60 * 60); if($result) { echo "<p>Cookie を保存しました。</p>"; }else{ echo "<p>Cookie を保存できませんでした。</p>"; } if(isset($_COOKIE["sample"])) { echo "Cookie の内容:" .htmlspecialchars($_COOKIE["sample"], ENT_QUOTES); }else{ echo "Cookie はありません。"; } ?>
お礼
ありがとうございました。 ここのサーバーはサポートがないので諦めます。 いろいろ本当にありがとうございます。