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插件来显示所有这些信息.
将其到期时间设置为过去一段时间应该清除它:
setcookie("username",$username,time()-10);
Run Code Online (Sandbox Code Playgroud)
如果您使用PHP会话来管理用户,您可能也会想要 session_destroy()