【问题标题】:How to destroy session and log out如何销毁会话并注销
【发布时间】:2014-01-19 15:04:25
【问题描述】:

我有一个登录页面和一个主页。在登录页面上,我要求输入用户名和密码,而在主页上,我正在显示数据库中的一些值。问题在于注销功能。我是这样做的:

login.php 页面

<?php
session_start();

if (isset($_POST['submit'])) {
    //log in code and to go to main.php
}

if (isset($_REQUEST['logstate'])) {
    session_destroy();
}

?>

ma​​in.php 页面

<a href="login.php?logstate=logout"><img src="logout.png" id="Logout"></a>

现在,当我单击注销图像时,它会结束会话,但会返回 URL:xxxxx.com/login.php?logstate=logout

我希望它返回网址:xxxxx.com/login.php

【问题讨论】:

    标签: php


    【解决方案1】:

    你可以尝试重定向

    <?php
    session_start();
    
    if (isset($_POST['submit'])) {
        //log in code and to go to main.php
    }
    
    if (isset($_REQUEST['logstate'])) {
        session_destroy();
        header("Location: xxxxx.com/login.php");
    }
    
    ?>
    

    【讨论】:

      【解决方案2】:

      将此作为您的 logout.php 文件并将其用作注销按钮的链接

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

      【讨论】:

        【解决方案3】:

        您可以在注销时尝试此操作

        您可以在注销图像上调用文件 logout.php,代码是:

        <?php 
        session_start();
        session_destroy();
        header("Location:home.php");//change the filename where you want to redirect it after logout
        ?>
        

        或以你的方式:

        if(isset($_REQUEST['logstate']))
        {
          session_destroy();
          header("Location:home.php");//change the filename where you want to redirect it after logout
        }
        

        参见Session_destroy() Doc,在销毁会话时需要初始化会话。

        【讨论】:

          【解决方案4】:

          试试吧它会解决你的问题:

           <?php
              session_start();
          
              if(isset($_POST['submit']))
              {
                //log in code and to go to main.php
              }
          
              if(isset($_REQUEST['logstate']))
              {
                session_destroy();
              header("location: xxxxx.com/login.php"); 
              exit();
              }
          
          ?>
          

          【讨论】:

            【解决方案5】:

            在销毁会话后重定向用户。

            <?php
            header('Location: http://www.example.com/login.php');
            exit;
            ?>
            

            【讨论】:

              【解决方案6】:

              你需要做一个重定向

              if(isset($_REQUEST['logstate']))
              {
                session_destroy();
                header( 'Location: /login.php' ) ;
              }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-03-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-09-23
                相关资源
                最近更新 更多