※ ChatGPTを利用し、要約された質問です(原文:クッキーが保存されずに困っています)
クッキーが保存されずに困っています
このQ&Aのポイント
クッキーが保存されずに困っている場合、以下の要点を確認してみましょう。
質問者はPHPを独学しているため、クッキーに関する基本的な部分が分からないかもしれません。
クッキーが保存されない原因の可能性として、ブラウザの設定、クッキーの有効期限の設定、クッキーの命名規則などが考えられます。
どなたか、詳しい方がおりましたらアドバイスをお願い
いたします。私はプログラムを仕事としている者では
ありませんが、独学でPHPを勉強しております。
クッキーが保存されなくて困っています。
以下の部分です。
クッキーの有効期間は設定していませんが、ブラウザを
閉じずにテストしていての情況です。
----------------------------------------------------
ファイル名:rogin.php
<?php
setcookie("userck","ckdata=100");
print $_COOKIE[userck];
?>
<html>
<body>
<br><br><br>
<center>
<table border="1">
<form method="post" action="<?=*********">
<tr>
<td>
Email:
</td>
<td><input type="text" name="data1" size="30">
</td>
</tr>
<tr>
<td>
pass:
</td>
<td><input type="text" name="data2" size="30">
</td>
<tr>
<td colspan="2" align="center">
<input type="submit" name="sousin" value="送信">
</td>
</tr>
</form>
</center>
</body>
</html>
----------------------------------------------------
どうしてクッキーが保存されないのか自分なりにいろいろと
調べたり、テストをしてみたりしました。
テストの内容
test1.php
<?php
setcookie("userck","ckdata=100");
?>
test2.php
<?php
print $_COOKIE[userck];
?>
上の2つのファイルを作成して、test2.phpで出力してくるか
どうかを試してみますと、問題なく「data=10」が出力されて
きます。(保存されているかどうかだけを調べたいので、
parse_strは省略しています。)
ところが、問題のrogin.phpでクッキーを保存して別のファイル
で$_COOKIE[userck]を取得しようとしてもどうやら保存されて
いないようです。
rogin.phpの内部に記載した、print $_COOKIE[userck];では
ckdata=100は出力してきます。
それではと思い、test1.phpでセットしたクッキーはrogin.phpで
取得できるのかどうかをテストしてみますと、無事に取得できます。
setcookie()の前にはHTMLの出力はありません。
クッキー名にアンダーバーも使っていません。
何か、php.iniに関係するのかと思い、一応iniファイルに
output_buffering = On
を書き足したりもしました。
クッキーが保存されない原因で、考えられることはどんなこと
なのかが知りたいです。
どなたか、お分かりになる方アドバイスをお願いできないでしょうか。
よろしくお願いいたします。
お礼
アドバイス、ありがとうございました。 散々苦労したあげく、質問を出した後に自己解決できました。 おっしゃるとおり、ディレクトリーの問題でした。 なにぶん、独学初心者な者で壁を乗り越えるのにかなりの時間を かけながら進んでおります。 購入した本には、クッキーの有効範囲のことは何も記載されて いませんでしたので、何の疑問も持たずにこれまでいました。 ありがとうございました。