PHP注销脚本
我正在尝试创建一个PHP注销脚本,但是,只要我实现它,页面就会在登录后重定向到页面。代码如下: Connect.phpPHP注销脚本,php,Php,我正在尝试创建一个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());
<?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).
//在此之后,它将直接转到用户登录后显示的页面(control_panel.php),而不是index.php(登录页面)。
有什么想法吗?谢谢 看看这一页:
它完全通过了“创建一个安全的PHP登录脚本”。您当前的解决方案存在许多安全问题。我想您的代码是错误的,问题就在这里 在logout.php中,如果您在取消会话后使cookie过期,则cookie不会过期 在connect.php中,您使用此条件再次设置会话,因为cookie仍在用户的浏览器中,所以设置了会话
if(isset($_COOKIE['username']))
$_SESSION['username'] = $_COOKIE['username'];
因此,与其这样做,不如:
setcookie($username, time()-3600);
这样做:
setcookie($username, "", time()-3600);
将他的cookie用户名设置为
root
您最好在线查找如何创建auth脚本的教程。如上@Petah所述,您的方法是不安全的。是否“如果用户登录,将在登录后显示的页面”也index.php
?如果是,您必须@Petah,您所说的“将其cookie用户名设置为root”是什么意思?@user1340238,cookie由客户端存储和发送。如果您从cookie中读取用户名,那么客户端可以向您发送任何他想要的用户名。他实际上正在删除cookie,因为他正在设置过去的时间time()-3600
@AzizAG可能是他的cookie在浏览器中,也可能是他必须在index.php上设置cookie