2

この非常に短いコードに問題があり、作業できません。

基本的に、ユーザーが新規かリピーターかに応じて、2 つの異なるメッセージを表示したいと考えています。

<?php 
if(isset($_COOKIE['visit']) && ($_COOKIE['visit'] == "true")) 
{ 
  echo 'cookie set, welcome back';
}else{ 
  echo 'cookie not set, welcome new user';
} 
setcookie("visit", "true", time()+60*60*24*600); 
?>

問題は、Cookie が設定されていないことです。何が悪いのかわからない、誰か助けてくれる?

4

2 に答える 2

4

setcookie を条件に移動する必要があります。

<?php 
if(isset($_COOKIE['visit']) && $_COOKIE['visit'] == "true"){
    echo 'cookie set, welcome back';
}else{
    echo 'cookie not set, welcome new user';
    setcookie("visit", "true", time()+60*60*24*600);
}
?>

機能しない場合は、Cookie がスクリプトに送り返されていることを確認する必要があります。たとえば、ブラウザまたはブラウザのアドオンが干渉しています。

サーバーが EU にある場合、そのコンピューターに情報を保存または取得する前に、訪問者からインフォームド コンセントを取得する必要があるという新しい法律があることに注意してください。http://www.cookielaw.org/

于 2012-06-04T17:44:44.333 に答える
0

上記のコードを使用して、モーダル ウィンドウを 1 回だけ表示しました。

上記の問題は、ヘッダーが設定されている時点でのみ setcookie を使用できるインデックスページの最後で使用しようとしたことです。

代わりに私は使用しました:

if(isset($_COOKIE['visit']) && $_COOKIE['visit'] == "true"){
    $load = false;
} else {
    $load = true;
    setcookie("visit", "true", time()+60*60*24*600);
}

設定されていない場合は、PHPファイルの上部にCookieを設定してから使用します

if($load == true){
    //do code on first run
}

1回の実行用にコードを追加する必要がある場合は、ヘッドで1回使用するcssスタイルシートを設定し、フッターで1回使用するスクリプト/ htmlを設定しました。

于 2015-10-12T09:07:26.190 に答える