删除PHP Cookie?

Jas*_*son 7 php session-cookies

我目前有一个cookie设置如下:

setcookie("username",$username,time()+3600*24*5);
Run Code Online (Sandbox Code Playgroud)

我将如何清除该cookie的值,以便不再填写用户的用户名?

我把它清除如下:

setcookie("username","",time()-60000);
Run Code Online (Sandbox Code Playgroud)

用户的用户名仍然会出现.

HTML表单:

<?php
    session_start();

    $username = NULL;
    $password = NULL;

    if(isset($_SESSION['username'])){
        $username = $_COOKIE['username'];
        $password = $_COOKIE['password'];
    }
?>
<html>
    <title>Login</title>
    <body bgcolor='#000000'>
        <font color="white">
    <H2><div align='center'>Login</div></H2>
    <form align='center' action='login.php' method='POST'>
            Username: <input type='text' name='username' value='<?$_COOKIE['username']?>'><br \>
            Password: <input type='password' name='password' value='<?$password?>'><br \>
            Remember Me <input type='checkbox' name='remember' value='rememberme'><br \>
            <input type='submit' value='Login'>
        </form>
        </font>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

用于处理表单的PHP脚本:

<?php
    session_start();

    $username = $_POST['username'];
    $password = $_POST['password'];

    //Hash password in a new variable
    $password2 = md5($password);

    require_once "/home/a7435766/public_html/scripts/dbconnect.php";

    $query = mysql_query("SELECT * FROM userstwo WHERE username = '$username' && password = '$password2'");

    if((mysql_num_rows($query)) != 0) {
        //Store username and password in a cookie
        if($_POST['remember'] == 'rememberme') {
            setcookie("username",$username,time()+3600*24*5,'','.ohjustthatguy.com');
            setcookie("password",$password,time()+3600*24*2,'','.ohjustthatguy.com');
        } else {
            setcookie("username","",time()-10,'','.ohjustthatguy.com');
            setcookie("password","",time()-10,'','.ohjustthatguy.com');
    }
        $_SESSION['username'] = $username;
        header('Location: http://www.ohjustthatguy.com/uploads/uploads.html');
        } else {
        header('Location: http://www.ohjustthatguy.com/uploads/');
    }
?>
Run Code Online (Sandbox Code Playgroud)

关于pastebin的原始资料来源

Cha*_*shu 11

请确保删除具有相同域名和路径的cookie.example.com和www.example.com的Cookie将被视为两个不同的Cookie.同样,example.com和example.com/Support中设置的cookie将具有不同的路径.一个好的做法是使用.example.com作为域,使用'/'作为用户名类型cookie的路径,以便它们也可以在您的子域之间共享.

要调试它,您可以使用Firefox的FireCookie插件来显示所有这些信息.


Chr*_*ong 7

将其到期时间设置为过去一段时间应该清除它:

setcookie("username",$username,time()-10);
Run Code Online (Sandbox Code Playgroud)

如果您使用PHP会话来管理用户,您可能也会想要 session_destroy()

  • 在我回答之后,你编辑了这个问题. (10认同)