PHP注销脚本

PHP注销脚本,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注销脚本,但是,只要我实现它,页面就会在登录后重定向到页面。代码如下:

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). 
//在此之后,它将直接转到用户登录后显示的页面(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