-1

このサイトの下に、Wordpress と php の Cookie で遊んでいるサイトがあります。http://johnnylai.me/lotus

私がやりたいのは、ユーザーが初めて来たときに、フロントページの2つのリンクのいずれかを選択してもらいたいということです(これは別のWPインストールです)。次回同じユーザーがサイトに戻ってきたときに、もうフロントページを表示したくありません (b 4 cookie が削除されているか、期限切れになっています)。2 つのサイトのうちの 1 つに直接アクセスするようにします - http://johnnylai .me/lotus/virksonhedまたはhttp://johnnylai.me/lotus/privat - 最初に何をクリックしたかによって異なります。

私はいくつかのクッキーが必要であることを知っていますが、ファイルをどこに置くべきか、そしてそれを正しく行う方法がわかりません.

フロントページ( http://johnnylai.me/lotus )を持つWPインストールのfunction.phpというファイルにsulotion/phpコードを考えていますが、これが正しい方法かどうかはわかりませんそれ。

いくつかのコード例がいいでしょう:)

どんな助けでも感謝します、ありがとう!

<?php
    $expire=time()+60*60*24*30;
    setcookie("cat", "/cat1", $expire); 

    // But this is something with categoies in WP, that's not what i need.
?>

また、

<?php
   function has_auth_cookie()
   {
     // See if cookie is set
     if(isset($_COOKIE['lotus'])){
       // Do nothing
       header('Location: johnnylai.me/lotus/???');
     }
       else
     { 
       // Do Something else 
       header('Location: johnnylai.me/lotus/'); 
     }

   }
   add_action('http://johnnylai.me/lotus/????', 'has_auth_cookie');
   ?>
4

1 に答える 1

0

ノート:

  1. header() を実行していて、それらをオンサイトに保持している場合は、ローカル パスを使用できます。

    header('場所: /lotus/');

  2. $_COOKIE は配列であるため、 isset() の代わりに $_COOKIE をチェックする場合は、

    if(!empty($_COOKIE['cookiename']))

  3. 何らかの理由で誰かにもう一度ホームページを見てもらいたい場合は、Cookie の設定を解除する必要があります。

    setcookie ("cookiename", "", time() - 3600);

  4. 人々がクッキーを受け入れない場合、あなたがそれらを認識する他の方法がない限り、リダイレクトされません.

  5. Cookie を設定するには、最初に Cookie を渡す必要があります。ヘッダーは既に送信されているため、Cookie を設定しているページでヘッダー リダイレクトを行うことはできません。

PHP コード:

<?php
  if(empty($_COOKIE['TestCookie'])){
    if(!empty($_GET['c'])){
      $cVar = $_GET['c'];
      //time to set some cookies
      switch($cVar){
        case '2':
        setcookie("TestCookie", '2');
        echo "Cookie 2 set. Reload the page.";
        break;

        default:
         //also covers hacking attempts
            setcookie("TestCookie", '1');
            echo "Cookie 1 set. Reload the page.";  
        }

    } else {
    // They're possibly a first time visitor or someone offsite 

    echo '<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cookie Check</title>
</head>

<body>
<a href="?c=1">Set cookie 1</a>
<a href="?c=2">Set cookie 2</a>
</body>
</html>';

    }

} else {
    switch($_COOKIE['TestCookie']){

    case '2':
    //Send them to location 2
    header('Location: http://www.google.com/');
    break;

    default:
    //Send the to location 1
    header('Location: http://www.yahoo.com/');      
    }
}

?>
于 2013-03-28T19:11:42.767 に答える