0

編集:私の悪い、それは(サーバー側の)キャッシュの問題でした。助けてくれてありがとう。

訪問したときに最初にCookieの「イントロ」をチェックし、存在しない場合はイントロページにリダイレクトするサイトがあります。

<?php if (!isset($_COOKIE["intro"])) {
header( 'Location: http://explainasterisk.com/intro/' ) ; } ?>

ユーザーがイントロページの「開始」ボタンをクリックすると、Cookieは以下を使用して設定されます。

<script type="text/javascript">
          $(document).ready(function () {
              $('.home').click(function () {
                  scroll(0, 0); //scrolltotop
                  var intro = "intro" //setting cookiename variable
                  var today = new Date();
                  var expire = new Date();
                  expire.setTime(today.getTime() + 3600000*24*365);
                  document.cookie = intro+"=1"
                                  + ";expires="+expire.toGMTString();                  
                  $('.home').slideUp(3000, function () { //slideUp function 
                      //Nothing
                  });
              });
          });
</script>

OperaとChromeではCookieが設定されていますが、イントロページのスキップボタンをクリックすると(元のページに戻ります)、イントロページにリダイレクトされます。あなたはここでこれをライブで見ることができます:http://explainasterisk.com/

4

5 に答える 5

0

問題の原因はerror_reporting(E_ALL);、コードの最初(および ini_set('display_errors','On');開発環境)にないことです。

持っている場合、PHPは$_cookie変数がないというエラーメッセージを表示します。

于 2013-03-18T13:56:21.757 に答える
0

jquery-cookieを試してみることをお勧めします。これにより、有効期限のあるjavascriptでのcookieの設定と処理が非常に簡単になります。

1つの簡単な行:

$.cookie("[cooke name]", "[value]", { expires: [time in days]);

例えば:

$.cookie("intro", "set", { expires: 365);

PHPスニペットは私には問題なく見え、Cookieが正しく設定されていれば機能するはずです。

于 2013-03-18T13:58:30.933 に答える
0

JavaScriptのCookieがドメインで設定されています.explainasterisk.com

したがって、Cookie を読み取る前にこれを試してください。

ini_set("session.cookie_domain", ".explainasterisk.com");

于 2013-03-18T14:05:00.990 に答える
0
if (!isset($_cookie["intro"])) {

は正しくないアレイ名です。このように大文字にする必要があります

if (!isset($_COOKIE["intro"])) {

参照: $_COOKIE

ありがとうブラッド・クリスティ。

于 2013-03-18T13:49:22.363 に答える
0

Cookie の末尾にパスとドメインを追加してみてください。

path=/; domain=.<?php echo $_SERVER['HTTP_HOST']; ?>
于 2013-03-18T14:04:17.153 に答える