我在一个注销功能不起作用的工具上工作。我有一个索引页面,其中包含配置文件和session_start()。
之后,我会在其中包含一个页面,其中包含我的横幅以及我的登录和注销按钮。当我点击其中一个按钮时,我会转到另一个页面connec.php
,我会销毁或创建连接。
连接没问题,我初始化了所有的会话变量。 为了断开连接,我做了:
if(isset($_POST['logout'])){
$_SESSION = array ();
session_unset();
session_destroy();
$_POST['logout']=1;
//gotopage($GLOBALS["GLOBAL_URL_PSISITE"]);
header("Location: ../index.php");
我仍然保持联系,当我print_r($_SESSION)
永远存在时。
答案 0 :(得分:2)
首先确保页面在页面顶部定义session_start()
,然后在页面上执行任何操作,然后确保输入字段包含form
元素和{{{} 1}}有submit button
,您的表单设置为name=logout
method=post
答案 1 :(得分:0)
你的文件中需要这样的东西
<?php
session_start();
if (isset($_POST['logout'])) {
$_SESSION = array();
if (ini_get("session.use_cookies")) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();
//$_POST['logout']=1; // this won't do anything since you're redirecting on the next line.
header("Location: ../index.php");
exit;
}
?>
答案 2 :(得分:0)
为了正确“销毁”正在运行的会话,您必须首先告诉PHP您要杀死哪个会话。
如果您的会话没有自定义/手动名称(大多数情况下),您必须先打电话
session_start();
之前你可以打电话
session_destroy();
......所以:
<?php session_start(); session_destroy(); ?>