0

ファイル logout.php を作成し、それを呼び出す

 <a href='logout.php'>log out</a>

ただし、セッションは destory または unset ではありません。logout.php ファイルを以下に示します。

  <?php session_start();

  if(isset($_SESSION['user_id']) | isset($_SESSION['mem_id'])|                         
   isset($_SESSION['fname']) | isset($_SESSION['lname'])) {

   $_SESSION=array();
   unset($_SESSION['user_id']);
   unset($_SESSION['mem_id']);
   unset($_SESSION['fname']);

  if(isset($_COOKIE[session_name()]))  {

  setcookie(session_name(), '' , time()-3600);
 } 
   session_destroy();
    }
  header("location:index.php"); 
   ?> 

私のログインファイルでは、3 つのセッション変数を生成します。

   $_SESSION['user_id'])
   $_SESSION['mem_id'])
   $_SESSION['fname'])

このセッション変数を破棄するのを手伝ってください

4

2 に答える 2

1

You don't do $_SESSION=array();, the variable already exists and is an array, you don't declare as one again.

You also need to use || for OR. a single pipe | is a bitwise operator and not what you want.

... isset($_SESSION['user_id']) || isset($_SESSION['mem_id']) ...

One thing you can do to debug is have it echo something inside the if statement. If it does echo it to the screen, you know it go into that if statement. If it didn't, you know it did not. Then you can begin to figure out if the conditions for the if statement are met or not to find what's wrong.

于 2012-11-08T06:11:27.057 に答える
1

logout.php でセッションを破棄するために非常に長いコードを使用する理由。セッションを開始してから破棄するだけです。コードのように。

<?php
session_start();
if(session_destroy())
{
header("Location: index.php");
}
?>
于 2012-11-08T06:48:14.967 に答える