2013-03-28 18 views
-1

我有這個網站下面,我在玩一些WordPress的& PHP餅乾。 http://johnnylai.me/lotusWordPress的,網站重定向使用餅乾

我想要做的是,當用戶第一次進來時,我希望他們在首頁選擇兩個鏈接之一(這是一個單獨的WP安裝)。下一次,同一用戶回到網站,我不希望他們再看到首頁(b 4 cookie被刪除或過期),我希望他們直接去兩個網站之一 - http://johnnylai.me/lotus/virksonhedhttp://johnnylai.me/lotus/privat - 取決於關於第一次點擊的內容。

我知道我需要一些cookie的東西,但在哪裏把文件,以及如何正確做到這一點我不知道。

我在WP安裝中有一個名爲function.php的文件,裏面有頭文件(http://johnnylai.me/lotus),但不知道這是否是正確的方法。

一些代碼示例將是很好:)

任何幫助appreaciated,謝謝!

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

回答

0

注:

  1. 當你在做頭(),你需要讓他們的現場,你可以使用本地尋路等等

    header('Location:/ lotus /');

  2. 因爲$ _COOKIE是一個數組,當你檢查了$ _COOKIE代替isset()函數使用

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

  3. 如果由於某種原因,您希望有人再次查看主頁,則需要取消設置Cookie。

    setcookie(「cookiename」,「」,time() - 3600);

  4. 如果人們不接受cookies,除非您有其他識別方式,否則他們不會被重定向。

  5. 爲了設置一個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/');  
    } 
} 

?> 
+0

cpattersonv1 謝謝您的講解和代碼示例。 我會看看我是否可以得到它的工作。 它會工作,如果我把php代碼到function.php並把它放入主題? – George

+0

這裏還有另一個專門爲WordPress添加cookie的參考:http:// stackoverflow。com/questions/6183162/how-can-i-set-get-and-destroy-cookies-in-wordpress –

+0

這取決於你使用的主題。您可以隨時嘗試它並查看它是否中斷,然後在恢復備份的情況下進行恢復。如果它不起作用,您可能需要查看主題以查看是否有事件被觸發。 –