2012-04-29 16 views
2

セッションを設定するために以下の操作を行いますが、これはエコーが表示されるためです。しかし、私は次のページに行くか、別のセッションはないですか?私は何を間違えているのですか?PHPセッションが失われています

$session_start(); 

if ($username==$dbusername&&$password==$dbpassword) 
    { 
     echo"<b>Login Successful</b><br><a href='systemadmin.html'><br>Click here to access the <strong>System Admin Page</strong></a>"; 
     $_session['username']=$dbusername; 
     if($username == "admin") 
     { 
      $_session['admin'] = true; 
     } 

私はこれらのセッションで動作するように、次の取得しようとしています:

<?php 
session_start(); 
if($_session['admin'] == true) 
{ 
// do nothing 
}else{ 
    header('Location: home.html') ; 
} 

?> 

更新:

大文字のセッションは動作しますが、私はlogout.phpを使用するときに、今のセッションが破棄アレント

<?php 

session_start(); 

session_destroy(); 

header("location: home.html"); 

?> 

答えて

5

$_sessionは、>$_SESSIONである必要があります。

http://php.net/manual/en/reserved.variables.session.php

最初の作品、あなたは(要求のために利用可能である)「通常の」変数を設定しているため。

<?php 
// Initialize the session. 
// If you are using session_name("something"), don't forget it now! 
session_start(); 

// Unset all of the session variables. 
$_SESSION = array(); 

// If it's desired to kill the session, also delete the session cookie. 
// Note: This will destroy the session, and not just the session data! 
if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
    ); 
} 

// Finally, destroy the session. 
session_destroy(); 
?> 

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

スクリプトのさらなる実行を防ぐためにリダイレクトを行った後Additionalyあなたが常にexit();を使用する必要があります。セッションを破壊する

UPDATE

+0

これは動作しますが、新しい問題が発生しました – Anicho

+1

@Anicho私のアップデートを参照してください – PeeHaa

+0

ありがとうrepwhoringpeehaa – Anicho

0

スーパーグローバルの名前は大文字の$_SESSIONです手紙。それを変更して、それが役立つかどうか確認してください。

2

PHPサーバ/セッション/グローバル変数は大文字と小文字を区別します。 PHPの場合、$_SESSION$_sessionと同じ変数ではありませんが、英語の場合でも、そうであるようです。期待どおりにPHPセッション変数にアクセスするには、$_sessionではなく、$_SESSIONを使用する必要があります。

2

exit()を使用する必要があります。 header()の後に;ユーザーが新しいページにリダイレクトした直後にスクリプトが終了するとは限りません。

関連する問題