2

次のコードを使用して、Cookie なしでコンテンツのブロックを出力し、Cookie が設定されている場合は別の数値を出力しています。問題はgetcookie、ページが更新されるか、ユーザーが次のページに移動するまで、変数が機能しないことです。

ヘッダー リダイレクトを喜んで使用しますが、このコード内のどこに配置すればよいかわかりません (誰かがコード自体に対するより良い解決策を持っていない限り)。

if (is_page(817)) {
    setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN);
}
if ($_COOKIE["phonecookie"] =="") {
    echo "no cookie here";
} else { 
    echo "cookie stored!"; 
}

また、上記のコードは、訪問者が WordPress 内の特定のページに到達した場合に Cookie を設定します。

example.com/?src=affiliate などのクエリ文字列を介してそれを行う別の方法はありますか

4

2 に答える 2

0

ヘッダーを使用して同じページにリダイレクトします。

if (is_page(817) && empty($_GET['redirect'])) {
    setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN);
    header("Location: http://url-for-this-page.com/path/?query=thequery&redirect=1"); 
    exit(0);
}

redirect=1ユーザーが Cookie を無効にしている場合に無限ループを停止するために、URL に追加されました。

于 2011-07-01T12:22:23.923 に答える
0

これを試して

if ((is_page(817) && (!isset($_COOKIE["phonecookie"]) {
     setcookie("phonecookie", 1, time()+3600, COOKIEPATH, COOKIE_DOMAIN); 
     //Your redirect code here
     header("Location:yoururl);
} elseif (isset($_COOKIE["phonecookie"])) {
     echo "cookie stored!";  
} else {
     echo "no cookie here or page is not 817";
}
于 2011-07-01T12:25:49.360 に答える