如何使用php制作涉及会话cookie的注销页面?
Posted
技术标签:
【中文标题】如何使用php制作涉及会话cookie的注销页面?【英文标题】:How to make logout page that involves session cookie using php? 【发布时间】:2014-05-19 16:56:31 【问题描述】:我想创建一个 logout.php 以便它记住 login.php 中的用户名。
我想使用 $_GET 方法,以便它从登录中获取会话用户名,当我们注销时,cookie 会话被注销。如果没有设置 cookie 会话,则会出现一个错误,指出没有人登录,所以 log gout 不起作用。
login.php 确实登录了用户并设置了我从浏览器设置中检查的 cookie。
登录.php
<?php
require"connection.php";
if (!isset($_POST['submit']))
$user = $_POST['username'];
$password = $_POST['password'];
if ($user)
if ($password)
setcookie('username', '$user', time()+3600);
setcookie('password', '$password', time()+3600);
//make sure login info correct
$query = mysql_query("SELECT * FROM users WHERE username = '$user'");
$numrows = mysql_num_rows($query);
if ($numrows == 1)
$row = mysql_fetch_assoc($query);
$dbuser = $row['username'];
$dbpass = $row['password'];
echo '<script type="text/javascript">alert("Welcome, '.$user.'. A cookie session has been created.");</script>';
elseecho "Please enter valid username or password";
else echo "Your password didn't match. Please try again";
else echo "Your username didn't match. Please try again";
else echo "Please enter username and password";
?>
【问题讨论】:
在注销页面上简单检查会话,如果没有设置特定会话,你可以给出错误。您不需要使用会话 cookie。 ..并且不要忘记在将 POST 数据插入 SQL 之前对其进行转义。 【参考方案1】:试试这样的..
if(isset($_COOKIE['username']) && !empty($_COOKIE['username']))
// Bye $_COOKIE['username'], you are logged out.
setcookie('username', '', time() - 3600);
else
// no user logged in
【讨论】:
您知道如何回显已登录的用户名并说例如“Bye Alex,您已注销”。我们需要 $_GET 命令吗?以上是关于如何使用php制作涉及会话cookie的注销页面?的主要内容,如果未能解决你的问题,请参考以下文章
在从 php 会话注销期间取消设置 cookie 有啥意义?