0

これは非常に初心者レベルの質問かもしれませんが、PHP を始めてまだ 1 か月なので、ご容赦ください。WordPress ブログに Cookie を設定しようとしています。Cookie は URL から値を受け取ります。"http://www.xyz.com/?name=ジョン"

これは、Cookie が設定されている方法です。

function set_name_cookie() {
    if (isset($_GET['name'])) {
        $name = $_GET['name'];
        setcookie("name", $name, time()+3600, "/", ".xyz.com", false);
    }
}
add_action( 'init', 'set_name_cookie');

HTML + PHP:

<?php if(isset($_COOKIE['name'])) {
      $name = $_COOKIE['name'];
      echo $name; 
?>
<a href="?name=John">John</a>
<a href="?name=Smith">Smith</a>

問題は、「John」または「Smith」のいずれかのリンクをクリックすると、ページがロードされますが、名前がエコーされないことです。名前がエコーされるようにするには、もう一度更新する必要があります。流れに問題あり。ヘルプ?

4

1 に答える 1

4

Cookie を設定すると$_COOKIE、その変数はブラウザーから送信されたものから読み込まれるため、そのページの読み込みではデータが取り込まれません。そのための回避策は$_COOKIE['name'] = $name;、ステートメントの後に設定setcookieすることですが、ブラウザが Cookie を受け入れて実際に設定することを保証するものではありません。スクリプトですぐに使用できるようにする方法です。

于 2012-10-16T06:06:19.183 に答える