2016-07-17 20 views
0

リフレッシュ時にセッション情報を破棄しようとしています。ここでの問題は、リフレッシュするたびにデータがテーブルに表示されることです。リフレッシュ時にテーブルデータをnullに設定するにはどうすればよいですか?リフレッシュ時にセッションを破棄します。

<?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

あなたが一度にそれらを取得した後、すべてのセッション変数をクリアしたい場合は、PHPS 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がnullである必要があり、すべてのセッションデータをクリアする必要があります。

unset()を使用して値を削除することもできます。例えば。

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

こんにちは、残念ながら、セッションは破壊されませんでした:( – xodebox95

0

一つの代替の方法は、空の配列としてセッションを設定することであり、それはあなたを助けるでしょう:

$_SESSION = array(); 

EDIT

あなたは破壊すると、空の配列を設定するために最初にしようとしませんでしたlike:

session_destroy(); 
$_SESSION = array(); 

多分この投稿は役に立ちましたか?あなた:why session_destroy() not working

+0

これはどちらもうまくいきませんか、それとも間違った順序で配置していますか? – xodebox95

関連する問題