Wordpress,使用cookie重定向网站

时间:2013-03-28 17:31:11

标签: php wordpress cookies

我在下面有这个网站,我正在玩一些Wordpress& php cookies。 http://johnnylai.me/lotus

我想要做的是,当用户第一次进入时我希望他们在首页选择两个链接中的一个(这是一个单独的WP安装)。下次同一个用户回到网站时,我不希望他们再看到首页(b 4 cookie被删除或过期),我希望他们直接转到两个网站中的一个 - http://johnnylai.me/lotus/virksonhedhttp://johnnylai.me/lotus/privat - 取决于第一次点击的内容。

我知道我需要一些饼干的东西,但在哪里放置文件以及如何正确地做到这一点我不确定。

我正在考虑在WP安装中有一个名为function.php的文件中的salotion / php代码,该文件具有首页(http://johnnylai.me/lotus),但不知道这是否是正确的方法

一些代码示例会很好:)

感谢任何帮助,谢谢!

<?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');
   ?>

1 个答案:

答案 0 :(得分:0)

注意:

  1. 当你正在做标题()并且你将它们留在现场时你可以使用本地路径,所以

    标题('位置:/ lotus /');

  2. 因为$ _COOKIE是一个数组,当你检查$ _COOKIE而不是isset()时使用

    如果(!空($ _ COOKIE [ 'cookiename']))

  3. 如果出于某种原因,您希望有人再次看到该主页,则需要取消设置该Cookie。

    setcookie(“cookiename”,“”,time() - 3600);

  4. 如果人们不接受cookie,除非您有其他方式识别,否则不会重定向。

  5. 要设置Cookie,您必须先将其传递。您无法在设置Cookie的网页上执行标题重定向,因为标题已经发送过了。
  6. 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/');      
        }
    }
    
    ?>