2016-12-22 7 views
-4

PHPを使用してログインとログアウトシステムを実装しているだけで、ログアウトに問題があります。次のようにシステムの概要は次のとおりです。どのように私は単一のアカウントをログアウトできますか?

  1. ユーザがログインすると、セッションは、セッション変数「ユーザー」と「スタッド」私は学生や管理者のためにそれを作成していますように作成されます。

  2. セッションが設定されると、ユーザーはhome.phpファイルにリダイレクトされます。

  3. このファイルには、ログアウトボタンが配置されています。ユーザーがログアウトボタンセッションをクリックすると、セッションは破棄されましたが、両方のアカウントが破棄されました。私はアカウント、学生、管理者の両方にログインしようとしていますが、管理者用にログアウトしようとすると、両方のアカウントが破棄されます。

誰でもこの問題を解決できますか?ここ

は、adminログアウトのための私のコードです:

のsession_start(); if(!isset($ _ SESSION ['user'])){header( "Location: index.php"); ( "Location:homeAdmin.php");} else if(isset($ _ SESSION ['user'])!= ""){ }
if(isset($ _ GET ['adminLogout'])){session_destroy(); unset($ _ SESSION ['user']);ヘッダー( "Location:index.php"); }

+1

はそれをうまく説明するのではなく、あなたのコードを表示する()session_destroyを削除 – meda

+1

を参照してください:[掲載]と[MCVE]次の時間を示しています。 –

答えて

0

あなたは別途$_SESSION['user'] and $_SESSION['stud'] などのユーザーと管理者のためのセッションを維持し、ログアウト処理上の各セッションを破棄しています。破壊するだけ$_SESSION['user']

+0

ええ、私は$ _SESSION ['user']と$ _SESSION ['stud']のようにそれらを分けました – Izzah

0
if(isset($_GET['adminLogout'])) { session_destroy(); unset($_SESSION['user']); header("Location: index.php"); } 

ここでは、パラメータ管理ログアウトを取っているし、同様にユーザーセッションを破壊するよりも、ユーザーのログアウト場合を意味します。まず、どのセッションが設定されているかを確認し、そのセッションを破棄する必要があると思います。また、セッションの破棄を使用しないでください、ちょうどunsetがあなたのために働くでしょう。 session_destroyは、すべてのセッションを破壊し、あなたはそれが

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

0

をどのように機能するかをより参照のためにここに確認することができますあなたに私は私の答えを持っている人たちに感謝します。ここでの問題のtehの答えを共有しています:

<?php 
session_start(); 

if(!isset($_SESSION['user'])) 
{ 
    header("Location: index.php"); 
} 
else if(isset($_SESSION['user'])!="") 
{ 
    header("Location: homeAdmin.php"); 
} 

if(isset($_GET['adminLogout'])) 
{ 
    unset($_SESSION['user']); 
    header("Location: index.php"); 
} 
?> 

がちょうど

関連する問題