让我用Cookie登录

问题描述:

我有一个登录SESSION,但我需要一个保持登录状态的复选框,用cookie制作,所以如果cookie已设置,我需要我的脚本才能进入索引。这是我的浏览器的错误“此网页有重定向循环” 这里是我的代码让我用Cookie登录

session_start(); 
if (isset($_COOKIE['user']) && isset($_COOKIE['p'])){ 
    unset($_SESSION['login']); 
} 
if ($_SESSION['login']!="success"){ 
header("location: login.php"); 
} 


<body> 
Welcome <?php echo $_SESSION['name'];?> 
<br> 
<a href="logout.php">LogOut</a> 
</body> 
+0

那么与他人共享cookie的用户可以访问彼此的帐户?这也可以做恶意。 “保持登录状态”还有很多可能比你意识到的要多。有关于此的数百万安全性文章 – user3791372 2014-09-01 21:45:23

+0

'此网页有一个重定向循环'错误意味着一个页面重定向到它自己。例如,你的'login.php'可能再次指的是'login.php',并且再次......并且除非浏览器介入,否则不会完成。 – 2014-09-01 21:47:23

+0

@KIKOSoftware软件我知道,我需要像设置cookie一样跳到索引。你可以帮我吗? – aleo 2014-09-01 21:59:24

设置你的时间,饼干

setcookie("user", "Test", time()+3600); 

饼干是不是安全的,你可以使用会话

并记住不要清除当你在页面中的饼干

希望这可以帮助你

+0

我有一个cookie集在我的登录页面。这是我的索引,如果Cookie设置为跳过会话并转到索引 – aleo 2014-09-02 07:55:05

+0

,那么我需要制作“保持登录状态”复选框吗? – 2014-09-02 08:00:30

+0

是的,我需要在我的索引页中有一个记得我的会话的cookie。我的cookie在登录页面设置,如果设置了cookie,我的登录页面将重定向到索引。 – aleo 2014-09-02 08:12:40

你的循环实际上是很容易找到:

if ($_SESSION['login']!="success"){ 
    header("location: login.php"); 
} 

如果您$_SESSION价值login不包含“成功”,你重定向回你的页面。该值仍然不存在,所以重定向再次发生。泡沫,冲洗,重复。

此外,之前的代码:

if (isset($_COOKIE['user']) && isset($_COOKIE['p'])){ 
    unset($_SESSION['login']); 
} 

好像是确保你没有有会话值,当你应该。


解决了你在这里遇到的具体问题,但我不得不说我真的不知道你在做什么。没有代码设置会话或cookie中的值,所以...我可以告诉你,在cookie中存储用户名和密码是一个非常糟糕的想法™。相反,您可能只想查找用户身份验证框架。