0

私の問題は、以下のコードを実行したときにセッション変数が設定解除されなかったことです。なにが問題ですか?

<?php  
 session_start();
 session_unset();
 //session_destroy();
 header("location: user_form.php");
?> 
4

4 に答える 4

3

実際にセッションを作成していません。セッション エンジンを開始しましたが、セッション変数を作成していません。たとえば、セッション変数 $_SESSION['userid'] がある場合、その値を設定解除するか、期限切れにするか、その値をヘッダーリダイレクトの if 句に失敗するものに設定できます。

于 2013-02-08T10:19:45.307 に答える
3

通常、私は次のようなことをします:

<?php  
 session_start();

 if(!empty($_SESSION) && is_array($_SESSION)) {
     foreach($_SESSION as $sessionKey => $sessionValue)
         session_unset($_SESSION[$sessionKey]);
 }

 session_destroy();

 header("Location: user_form.php");
?> 
于 2013-02-08T10:20:30.273 に答える
1

次の構文を試してください (未設定の変数名を使用してください)。

 <?php
    session_start();
    if(isset($_SESSION['views']))
      unset($_SESSION['views']);
    ?>
于 2013-02-08T10:20:48.747 に答える
0

セッションセット内にすでに変数があると思います。そうしないと、「設定を解除」するものは何もありません。

session_unset を使用すると、次のことと同等であるため、セッション自体は引き続き存在します。

$_SESSION = array();

もちろん、PHP 4.0.6 以下を使用している場合を除き、以下を使用することが期待されます。

unset ($_SESSION['varname']);

に従ってsession_unset

いわば、コードに「問題」はありません。

于 2013-02-08T10:31:56.333 に答える