2016-07-17 199 views
0

我試圖在刷新時銷燬會話信息。這裏的問題是每次刷新時,數據仍然出現在表格中。如何在刷新時將表數據設置爲空?刷新時銷燬會話

<?php 
     $value = $_SESSION["data"]; 
     $query = "SELECT * FROM datas WHERE CONCAT(`code`,`name`, `ID`, `cost`) LIKE '%".$value."%'"; 
     $search = filterTable($query); 
    if (isset($_SESSION["data"])) { 
     if (basename($_SERVER['PHP_SELF']) != $_SESSION["data"]) { 
      session_destroy(); 
     } 
    } 
    function filterTable($query) 
    { 
     $connect = mysqli_connect("localhost", "root", "", "databasename"); 
     $filter = mysqli_query($connect, $query); 
     return $filter; 
    } 

?> 
+0

你可以在這裏使用Javascript。您可以在'Document.ready'函數中清除表格。因此,對於每次刷新,表格將變爲空白。 –

+0

也許問題是這種情況:if(basename($ _ SERVER ['PHP_SELF'])!= $ _SESSION [「data」])。試着仔細檢查一下。 –

回答

0

如果要清除所有會話變量您檢索一次在他們之後,你可以使用PHP的session_unset()功能。

在你的代碼,這將是:

$value = $_SESSION["data"]; 
    $query = "SELECT * FROM datas WHERE CONCAT(`code`,`name`, `ID`, `cost`) LIKE '%".$value."%'"; 
    $search = filterTable($query); 
if (isset($_SESSION["data"])) { 
    if (basename($_SERVER['PHP_SELF']) != $_SESSION["data"]) { 
     session_unset(); 
    } 
} 

這應該清除所有的會話數據的頁面被刷新,所以當,$value應爲空。

您還可以嘗試使用unset()刪除值。例如。

unset($_SESSION['data']); 
+0

嗨,不幸的是,會議沒有被破壞:( – xodebox95

0

一個替代的辦法是設置會話爲空數組,這將幫助您:

$_SESSION = array(); 

編輯

你嘗試先破壞,然後設置空數組像:

session_destroy(); 
$_SESSION = array(); 

也許這個職位可能幫助你:why session_destroy() not working

+0

這也沒有工作,或者我把它放在一個錯誤的順序? – xodebox95