我正在尝试创建一个PHP注销脚本,但是,只要我实现它,页面就会在登录后重定向到页面。这是代码:
Connect.php
<?php
session_start();
$link = mysql_connect("localhost", "database_name", "database_pass") or die(mysql_error());
mysql_select_db("database_name") or die(mysql_error());
if(isset($_COOKIE['username']))
$_SESSION['username'] = $_COOKIE['username'];
?>
Logout.php
<?php
include("connect.php");
session_start();
session_destroy();
$username = $_SESSION['username'];
setcookie($username, time()-3600);
header("Location: index.php");
die;
?> //immediately after here, instead of going to index.php(the login page), it goes straight to the page that would appear after if the user had logged in(control_panel.php).
有什么想法吗?谢谢!
答案 0 :(得分:2)
查看此页面:http://blog.ircmaxell.com/2011/08/security-review-creating-secure-php.html
完全通过“创建安全的PHP登录脚本”。您当前的解决方案存在许多安全问题。
答案 1 :(得分:1)
你的代码错了我猜,问题出在这里..
在您的logout.php中,在您取消会话后,您的cookie将过期,您的cookie不会过期。
在connect.php中,您正在使用此条件再次设置会话并设置因为cookie仍在用户的浏览器中
if(isset($_COOKIE['username']))
$_SESSION['username'] = $_COOKIE['username'];
所以不要这样做:
setcookie($username, time()-3600);
这样做:
setcookie($username, "", time()-3600);