2017-05-01 68 views
0

我不能够取消设置在PHP中的会话(当我点击退出应该destroy_session(),但它不工作我的代码无法注销(会话没有被破坏掉了)在PHP

<ul class="nav1"> 
       <?php 
       if(!isset($_SESSION['user_name']) && empty($_SESSION['user_name'])) 
        { 
         echo '<li><a href="#" data-toggle="modal" data-target="#myModal">Mobile</a></li>'; 
         echo '<li><a href="#" data-toggle="modal" data-target="#myModal2">datacard</a></li>'; 
         echo '<li><a href="#" data-toggle="modal" data-target="#myModal1">DTH</a></li> '; 
         echo '<li><a href="#" data-toggle="modal" data-target="#myModal4">login</a></li>'; 
         echo '<li><a href="#" data-toggle="modal" data-target="#myModal5">Signup</a></li>'; 
        } 
        else 
        { 
         echo "<li><a href='#'>Hello,".$_SESSION['user_name']."</a></li>"; 
         echo "<li><a href='orders.php'>Passbook</a></li>"; 
         echo "<li><a href='#'>Wallet</a></li>"; 
         echo "<li><a href='settings.php'>Settings</a></li>"; 
         echo "<li><a href='logout.php'><i class='fa fa-sign-out'></i> Logout</a></li>"; 
        } 
         ?> 

我的注销代码

<?php ob_start(); 
    session_destroy(); 
    unset($_SESSION['user_name']); 
    header("Location: index.php"); 
    exit(); 

?>

请帮我!临屋提前

回答

0
if(!isset($_SESSION['user_name']) && empty($_SESSION['user_name'])) 

NKS应该

if(empty($_SESSION['user_name'])) 

检查都未定义(同isset)和缺乏任何价值 - 如果你已经清除了值或认证失败。

来源:http://php.net/manual/en/function.session-destroy.php

注意:您不必调用session_destroy()从通常的代码。清理$ _SESSION数组而不是销毁会话数据。

但是,你需要使用在session_start能够取消设置$ _SESSION [ 'USER_NAME']

session_start(); 
unset($_SESSION['user_name']); 
header('Location: index.php'); 
exit; 
+0

是它的工作!谢谢 –

0

我认为你缺少你注销代码session_start()

session_start(); 
unset($_SESSION['user_name']); 
session_destroy(); 
header("Location: index.php"); 
exit();