javascript — переключить домашнюю страницу на cookie

В моем индексном 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 существует, вы переходите на эту домашнюю страницу, а если у вас его нет, вы переходите на «портал», который устанавливает файл 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

Решение

Вы можете использовать один Cookie, где вы устанавливаете режим, давайте назовем его «режим страницы».

тогда вы можете использовать переключатель следующим образом:

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

Другие решения

Проверка переключателя недействительна, вам нужно передать параметр для проверки, а не весь массив $ _COOKIE.

По сути, вам нужно иметь один и тот же ключ для обоих файлов cookie и сравнивать значения вместо сравнения имени ключа, то есть если вы хотите использовать оператор switch.

Или вы можете просто использовать простую if elseif else чтобы все было проще.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector