在cookie上切换主页

时间:2017-09-11 13:46:36

标签: javascript php html cookies

在我的索引PHP文件中,我有这个简单的代码:

<?php
$enterprisecookie = "enterprise";
$personalcookie = "personal";

switch(!isset($_COOKIE)) {
case $enterprisecookie:
    include 'enterprise.php';
    break;
 case $personalcookie:
    include 'personal.php';
    break;
default:
    include 'portal.php';

}
?>

这个想法很简单,当这个cookie存在时,你会去这个主页,如果你没有,你会去一个&#34;门户网站&#34;将设置cookie。

所以这些是我设置cookie的按钮

        <a href="index.php"class="link" 
onClick="SetCookieper('personal','personal','1')"><button class="per"><h1> 
personal</h1>
        <p>texttexttext</p> </a>

        <a href="index.php" class="link" 
onClick="SetCookieent('enterprise','enteprise','1')"><button class="ent">
<h1> 
enterprise</h1>
        <p>textexttext</p>
        </button></a>

         <script>  function SetCookieper(c_name,value,expiredays)
        {
        var exdate=new Date()
        exdate.setDate(exdate.getDate()+expiredays)
        document.cookie=c_name+ "=" +escape(value)+
        ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
        }
        function SetCookieent(c_name,value,expiredays)
        {
        var exdate=new Date()
        exdate.setDate(exdate.getDate()+expiredays)
        document.cookie=c_name+ "=" +escape(value)+
        ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
        }</script>

cookie设置但是页面仍然会转到门户页面,有任何建议吗?

2 个答案:

答案 0 :(得分:1)

您可以在设置模式的地方使用一个Cookie,然后将其称为“Pagemode&#39;。

然后您可以像这样使用开关:

switch($_COOKIE['pagemode']){
    case 'enterprise': include 'enterprise.php'; break;
    case 'personal': include 'personal.php'; break;
    default: include 'portal.php';
}

如果您确实需要2个不同名称的Cookie,请使用if-ifelse-else语句:

if(isset($_COOKIE['enterprise'])){
    include 'enterprise.php';
} else if(isset($_COOKIE['personal'])){
    include 'personal.php';
} else {
    include 'portal.php';
}

如果您想使用第一种方法(保存主页模式的一个cookie),您可以像这样设置cookie:

<a href="index.php"class="link" 
onClick="SetCookie('pagemode','personal',1)"><button class="per"><h1> 
personal</h1>
        <p>texttexttext</p> </a>

        <a href="index.php" class="link" 
onClick="SetCookie('pagemode','enterprise',1)"><button class="ent">
<h1> 
enterprise</h1>
        <p>textexttext</p>
        </button></a>

<script>  
function SetCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
</script>

答案 1 :(得分:0)

您的开关检查无效,您需要传递一个参数进行检查,而不是整个$ _COOKIE数组。

基本上你必须要做的就是为两个cookie设置一个相同的密钥并比较值而不是比较密钥名称,即如果你想使用switch语句。

或者您可以使用简单的if elseif else来保持简单。