在我的索引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设置但是页面仍然会转到门户页面,有任何建议吗?
答案 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
来保持简单。