【问题标题】:Destroy session variables on clicking logout from a drop down menu [closed]从下拉菜单中单击注销时销毁会话变量[关闭]
【发布时间】:2013-10-12 13:13:45
【问题描述】:

我在多个页面中使用页眉。我有一个下拉菜单,用户可以从中选择注销。单击注销时,我想销毁会话变量。

在下拉菜单中单击注销后如何运行 PHP?

这是我的下拉菜单:

<ul class="dropdown-menu">  
    <li><a href="#">Register User</a></li>
    <li><a href=#">View Access List</a></li>
    <li><a href="logout.php">Logout</a></li>    
</ul>

【问题讨论】:

  • 它已经在运行了。 logout.php 中的代码将在浏览器请求该页面时被调用。
  • session_destroy();在 logout.php 中并使其重定向到您的主文件

标签: javascript php jquery session


【解决方案1】:

如果您有多个用户,最好在销毁会话之前保存用户 ID:

session_start();
$id = $session['User_id'];//user have user_id attribute
unset($_SESSION);

header("Location:index.php?message=logout?id=$id");

【讨论】:

    【解决方案2】:

    您不能在 onclick 中运行您的 PHP,因为当 PHP 被渲染时,它不会寻找调用它的事件,而是执行并执行它被告知要执行的操作。所以在onclick 事件中运行session_destroy() 不会等待点击,但是当页面加载时它会破坏会话。尝试制作另一个 PHP 文件,然后将注销链接链接到该页面,然后在那里执行 PHP,然后使用 header() 函数将页面重定向到另一个页面。

    希望这能解决你的问题

    【讨论】:

      【解决方案3】:

      您将logout.php 设置为:

      <?php
      
          session_start();
          unset($_SESSION);
          session_destroy();
      
          header("Location:index.php?message=logout");
      
      ?>
      

      这是一个简单的示例,但您可以根据需要对其进行增强。

      【讨论】:

        【解决方案4】:

        您的logout.php 文件必须包括:

        <?php
            session_start();
            session_destroy(); // ALL sessions of your site will be destoryed
            header("location: index.php?do=logout"); // or where ever you want to redirect the user
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-08
          • 1970-01-01
          • 1970-01-01
          • 2020-05-19
          • 1970-01-01
          • 1970-01-01
          • 2010-10-31
          • 2011-02-19
          相关资源
          最近更新 更多