【问题标题】:Unseting session from external file从外部文件取消会话
【发布时间】:2014-03-29 18:25:26
【问题描述】:

问题是我有文件“login.php”,我在其中开始会话

session_start();
$_SESSION['uname'] = $uname;

所以根据这个我被重定向到一个文件“main.php”,其中包括“header.php”,我有一个带有“href”到外部文件的按钮:

<a href="logout.php" action="includes/process.php" method="post" ><li>Logout</li></a>

此外部文件包括:

<?php
unset($_SESSION['uname']);
?>

但这里真正的问题是当我按下此按钮并转到“logout.php”并执行代码时,为什么我可以返回上一个主页?我忘了告诉有一个错误:Undefined variable: _SESSION in C:\xampp\htdocs\rootFolder\logout.php on line 3

或者如果我使用 session_destroy: session_destroy(): Trying to destroy uninitialized session in C:\xampp\htdocs\rootFolder\logout.php on line 3

【问题讨论】:

  • 可能是因为cookies,如果你刷新你在会话中没有uname。我宁愿在注销时销毁会话

标签: php


【解决方案1】:

在外部文件“logout.php”上,您没有启动会话“session_start()”。

在外部“logout.php”中使用此代码:

<?php
   session_start();
   unset($_SESSION['uname']);
?>

【讨论】:

    【解决方案2】:

    您必须使用session_destroy() 而不是unset()

    <?php
        session_start();
        session_destroy();
        header("Location: login.php");
    ?>
    

    你必须在所有文件的顶部start_session()

    【讨论】:

    • 我不上班。但主要问题是当我销毁会话时我必须 session_start 。我理解你,非常感谢!
    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 2018-04-15
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2011-08-13
    • 2015-03-15
    相关资源
    最近更新 更多