php - 注销后重定向到同一页面

标签 php session logout

index.php

<ul class="top">
       <?php if(!isset($_SESSION['login_user'])) { ?>
        <li class="hover"><a href="#" onClick="revealModal('modalPage')">Login</a>
        </li>
         <?php } else {?>
        <li class="hover"><a href="logout.php">Logout</a>
           Welcome <?php echo $_SESSION['login_user']; ?>
        </li>
         <?php } ?>
        <li><a href="registration.php" class="about">Registration</a>
        </li>
    </ul>

logout.php

<?php    
session_start(); 
session_destroy(); 
header('Location:index.php');  
exit;  
?>  

我的每个页面都有注销按钮,所以我想要这样,如果用户单击注销,他/她应该重定向到同一页面..因为我已经在此处给出了位置页面索引,但是我想留在同一个页面..任何代码重定向到同一个页面??提前谢谢你..

最佳答案

方法 1:在您的 logout.php 文件中,您需要检查是否有上一页的 REFERER url 并重定向,如果没有,则重定向到 index.php

<?php    
session_start(); 
session_destroy();
if(isset($_SERVER['HTTP_REFERER'])) {
 header('Location: '.$_SERVER['HTTP_REFERER']);  
} else {
 header('Location: index.php');  
}
exit;  
?>

方法 2:您可以传递对登录页面的引用以进行重定向。

注销链接

<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

<a href="logout.php?redirect=<?php echo base64_encode(curPageURL()); ?>">Logout</a>

logout.php 文件:

<?php
session_start(); 
session_destroy();
if(isset($_GET['redirect'])) {
 header('Location: '.base64_decode($_GET['redirect']));  
} else {
 header('Location: index.php');  
}
?>

关于php - 注销后重定向到同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20627245/

相关文章:

javascript - 使用 javascript 操作 php 变量和函数

jsp - Tomcat 错误,无法读取 session 范围变量

ios - 如果我在 IOS 中更新应用程序,想从我的帐户注销( objective-c )

java - 如何将/ibm_security_logout 的外部 JSP/HTML 片段嵌入到 JSF 中?

php - 将txt文件/数据导入到我的mysql数据库

PHP 命名空间和单例问题

php - 如何对 Laravel Mailable 进行断言

javascript - symfony2 从 Controller 访问 $_SESSION

jsp - 是否可以在每个 session 中仅评估 JSP 一次,然后将其缓存?

asp.net - 在asp.net中禁用自动注销功能