注销按钮php

cru*_*223 7 php logout

我有这个代码,需要代码添加一个注销按钮,任何人都可以写出注销用户的注销按钮的代码,我读了一些关于破坏会话但不知道怎么写出来的代码,谢谢您!

<?php
    include 'connection.php';
    //start of checking if user is logged in code
    if (!valid_credentials) {
    header('Location: login.php');
    exit();
    }

$_SESSION['user'] = 'username';


if (!isset($_SESSION['user'])) {
    header('Location: login.php');
    exit();
}
    //end of logged in code and starting a session

$query = "SELECT * FROM people";
$result = mysql_query($query);
While($person = mysql_fetch_array($result)) {
    echo "<h3>" . $person['Name'] . "</h3>";
    echo "<p>" . $person['Description'] . "</p>";
    echo "<a href=\"modify.php?id=" . $person['ID']. "\">Modify User</a>";
    echo "<span> </span>";
    echo "<a href=\"delete.php?id=" . $person['ID']. "\">Delete User</a>";
}
?>
<h1>Create a User</h1>
<form action="create.php" method="post">
    Name<input type ="text" name="inputName" value="" /><br />
    Description<input type ="text" name="inputDesc" value="" />
    <br />
    <input type="submit" name="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

asp*_*rin 25

而不是按钮,放置一个链接并将其导航到另一个页面

<a href="logout.php">Logout</a>
Run Code Online (Sandbox Code Playgroud)

然后在logout.php页面中,使用

session_start();
session_destroy();
header('Location: login.php');
exit;
Run Code Online (Sandbox Code Playgroud)

  • @Nakilon经典案例,在没有必要的情况下使事情复杂化.您是否看到通过锚链接传递的数据?当服务器端已经完成所有操作时,绝对不需要进行POST. (4认同)

Mic*_*780 7

当你想完全破坏一个会话时,你需要做更多的事情

session_destroy();
Run Code Online (Sandbox Code Playgroud)

首先,您应该取消设置任何会话变量.然后你应该销毁会话,然后关闭会话的写入.这可以通过以下方式完成:

<?php
session_start();
unset($_SESSION);
session_destroy();
session_write_close();
header('Location: /');
die;
?>
Run Code Online (Sandbox Code Playgroud)

您想要一个单独的注销脚本的原因是您不会意外地在页面上执行它.因此,请链接到您的注销脚本,然后标题将重定向到您网站的根目录.

编辑:

您需要从脚本顶部附近的退出代码中删除().它应该是

exit;
Run Code Online (Sandbox Code Playgroud)