如何在头重定向时传递会话变量?在重定向过程中丢失会话变量

时间:2013-12-17 09:08:07

标签: php session redirect logout

  

会话varibales

<?php session_start(); 
error_reporting(-1);
if (!isset($_SESSION)){
}
$total_amt=$_POST['total_amt'];
$total_seats=$_POST['total_seats'];
$seat=$_POST['seat'];
$boarding_point=$_POST['boarding_point'];
$submit=$_POST['chksbmt'];
$_SESSION['total_amt']=$total_amt;
$_SESSION['total_seats']=$total_seats;
$_SESSION['seat']=$seat;
$_SESSION['boarding_point']=$boarding_point;
$_SESSION['chksbmt']=$submit;
?>

<?php
$serial_no = 1;
$total_seats = $_SESSION['total_seats']; 
$seats=explode(',', rtrim($total_seats, ","));
foreach ($seats as $seat) { ?>
<tr>
<td style="text-align:center;"> <?php echo $serial_no++; ?></td>
  <td style="text-align:center;"><?php echo $seat; ?> </td>

&安培;等...... ..

登录div

<ul class="top">
         <li><a href="registration.php" class="about">Registration</a>
        </li>
       <?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></li>
    <div style="color:#00CC66;">Welcome <?php echo $_SESSION['login_user'];     ?></div>
         <?php } ?>
              </ul>
  

logout.php

<?php session_start();
session_destroy(); 
header('Location:'.$_SERVER['HTTP_REFERER']);  
exit;  
?>  

当我从我的页面退出时,必须重定向&amp;在这个过程中,我失去了我的会话变量。是重定向后保持变量不变的任何过程。页面重定向后得到未定义的索引错误..任何帮助.. ??提前谢谢

2 个答案:

答案 0 :(得分:1)

您在注销页面上销毁整个会话。您只需要取消设置相关的会话密钥。

类似的东西,

session_start();
unset($_SESSION['login_user']); //session_destroy(); 
header('Location:'.$_SERVER['HTTP_REFERER']);  
exit;  

答案 1 :(得分:1)

而不是使用session_destroy();,您应该使用unset($_SESSION['login_user']);

它会将会话中变量的值更改为 null 你不会丢失变量session_destroy()完全破坏会话,然后您无法访问该变量 您可以使用var_dump检查它们之间的差异,例如: - session_destroy(); var_dump($_SESSION['login_user']);

unset($_SESSION['login_user']); var_dump($_SESSION['login_user']);
代码中 AND

if (!isset($_SESSION)){
}

你不应该把它留空。我想您忘记在此块中包含以下代码