違うんです。
説明が下手なのですが。。。
①上記のロジックで確認したところ、クッキーの値が、空白→1→3→5・・・となってしまった。
②何度か確認したいため、クッキーの期限を外した。
③ブラウザを閉じてもクッキーが有効、elseのロジックに流れるため、クッキー名称を変更して確認した。
④理由がわからないので、フォーラムに投稿。この際、my_cookie3→my_cookieへの修正が漏れた。
という感じなのです。
クッキーの期限も不思議ですが、クッキーの値が2ずつプラスされるのがわかりません。
setcookieは、header.phpでしか実行していません。
home.phpでは、いまはecho $_COOKIE[‘my_cookie’]; しかしていません。
こちらでは上記のコードで正常に動作します。(0、1、2、3、4…と表示)
ブラウザは何を使用しているでしょうか?
初回はクッキーを保存しているだけですので、何も表示されませんが、初回アクセスでクッキーの表示確認場所が空白になる(何も表示されない)のでしょうか?
それに関しては正常な動作です。
一度クッキーが送信されると、次のページのロードからは $_COOKIE や $HTTP_COOKIE_VARS 配列によってクッキーにアクセスできます。
陥りやすい失敗
- クッキーは、クッキーを有効にするために次にページをロードするまで アクセスすることができません。クッキーが正常にセットされたか テストするために、クッキーの有効期限が切れる前に次のページを ロードしてクッキーをチェックしてください。 有効期限は expire 引数でセットされます。 クッキーの利用についてデバッグするのに良い方法は print_r($_COOKIE); をコールすることです。
setcookieは、header.phpでしか実行していません。
間違いなく1箇所だけでしょうか?
試してくださったのですね?!
ありがとうございます。
GoogleChromeで確認しました。
FireFoxもやったかも?
初回確認(home.php)のまえに、0をセット(header.php)しているので、
空白ではなく、0が表示されるはずですよね?
setcookieがheader.phpにしかないのは確実です。
ifとelseで2箇所ありますが。
header.phpが他から呼ばれていることもあるのかな。
home.phpからget_header()で呼んでいます。
22日まで夏休みなので、出社したらもう1度みてみます。
またお付き合いくださいませ。
ファイルは別々ですが、どちらも同じページへのアクセスで使用するテンプレートで、別のページではありません。
トップページへのアクセスで確認しているのだと思いますが、クッキーはページへのアクセス時にやり取りされるヘッダー情報に含まれる為、テンプレートの読み込みでは更新されません。
PHP: 外部からくる変数 – Manual
Cookieは、HTTP ヘッダの一部なので、~
popup様
間があいてしまい、申し訳ありません。
あれから何度か試したのですが、やはりクッキーの値はクッキーの値が、空白→1→3→5となってしまいます。
header.phpで0をセットしているので、空白ではなく最初は0になるはずで、以降は1ずつカウントアップされるはず。。
どこでクッキーの値が更新されているのか、お手上げ状態です。