最初に私は私のように持っていsetcookie()
ました:
$school = "Some Value";
setcookie("default_school", $school, time()+3600);
var_dump($_COOKIE);
それはうまくいかなかったので、検索を行ったところ、おそらくパスを設定するだけでよいことがわかったので、次のように変更しました。
$school = "Some Value";
setcookie("default_school", $school, time()+3600, "/", ".mydomain.com");
var_dump($_COOKIE);
それでもうまくいかなかったので、さらに調査を行い、問題はCookieの設定が遅すぎたに違いないと判断しました。そこで、コードの特定の部分にヘッダーが設定されているかどうかを確認し始めました。これは、を返す必要がありますbool(false)
。
var_dump(headers_sent());
最初に私の上部index.php
、次に私の上部にありますheader.php
が、それでも同じ結果です。それらは両方ともtrueを返しますか?
これはとても単純なはずだと思います、そして私はどこにも行きません。正しい方向へのプッシュをいただければ幸いです。
ありがとう、アイザック
編集:initフックの前に配置しようとしたところ、falseが返されました。次に、setcookie関数をそこに配置しましたが、それでも運がありません。
編集2:追加することになった:
function set_user_cookie() {
$school = "Some Value";
setcookie('default_school', $school, time()+3600);
}
add_action('init', 'set_user_cookie');
そして今、それは完全に機能します。