2014-09-18 138 views
1

我的网站有一个启动页面,在进入网站之前应询问用户进行确认。 我在那里实现了“记住我”复选框,因此如果用户检查它将设置cookie,以便在下一次访问页面中自动重定向。检查Cookie是否设置,然后加载页面其他重定向页面

我刚刚碰到的问题是我想在我的页眉页面设置一个条件,所以它应该检查用户是否已经有Cookie,它应该显示页面内容,如果不是,它应该重定向到飞溅页面。

有什么办法要么PHP或JS

下面是醒目网页代码

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
<!-- JQuery --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(e) { 
    $('#remember').click(function() { 
     if (this.checked) { 
      addCookie(30); 
     } else { 
      deleteAllCookies(); 
     } 
    }); 
}); 

function deleteAllCookies() { 
    var cookies = document.cookie.split(";"); 
    for (var i = 0; i < cookies.length; i++) { 
     var cookie = cookies[i]; 
     var eqPos = cookie.indexOf("="); 
     var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
     document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
    } 
} 

function addCookie(exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires=" + d.toGMTString(); 
    document.cookie = expires; 
} 

function checkCookie() { 
    if (document.cookie == false) { 
    } else if (document.cookie.indexOf("expires") >= 0) { 
     window.location.href = "https://www.google.com"; 
    } 
} 

function goTo() { 
     window.location.href = "https://www.google.com"; 
} 
</script> 
</head> 
<body onLoad="checkCookie();"> 
<h1>Splash Page</h1> 
<form> 
<input type="checkbox" id="remember"> Remember me 
<br> 
<input type="button" value="Enter" onClick="goTo();"> 
</form> 
</body> 
</html> 

@totallytotallyamazing

+0

@totallytotallyamazing你有什么想法吗? – Amir 2014-09-18 16:21:04

+0

侧注:如果你只用JavaScript做到这一点,我将禁用JavaScript并浏览你的网站。应该可能在PHP中完成。 – Ohgodwhy 2014-09-18 16:22:32

回答

1

我用JS,jQuery和(PHP只是用于测试),为此解决方案。

这里是DEMO。 (我稍微改变了先前的初始页面演示,以适应这一演示。)

下面是代码:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
<!-- JQuery --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
function checkCookie() { 
    if (document.cookie == false) { 
     $('#x').text("No Cookie."); 
     window.location.href = "http://www.totallytotallyamazing.com/jsFiddle/cookie/indexNoAlert.html"; 
    } else if (document.cookie.indexOf("expires") >= 0) { 
     $('#x').text("You have Cookie."); 
    } 
} 
</script> 
</head> 
<body onLoad="checkCookie();"> 
<h1>My Website</h1> 
<p><div id='x'></div></p> 
<?php 
session_start(); 
if(isset($_COOKIE['expires'])) { 
    echo "Here is your expiration date " . $_COOKIE['expires'] . "!<br>"; 
} 
?> 
</body> 
</html> 

页面后它的最终重定向,重新载入页面一次看到了“到期“cookie显示是到期日期。

我希望这适用于您,请让我知道。

+0

不工作,是在整个域设置cookie? Cookie是否有名称可以识别?我应该把代码放在标题(对于所有页面) – Amir 2014-09-18 20:03:16

+0

@Amir希望这可以让你证明它的工作。该cookie的名称是“过期”。此外,如果您使用的是Chrome浏览器,请从菜单中点击查看 - >开发者 - >开发者工具 - 在此处点击资源标签,然后您会看到Cookie点击以查看Cookie或缺少Cookie。 – totallytotallyamazing 2014-09-19 01:19:16