0

adminユーザーを除いて、ログインですべてが機能しています。

admin.phpに移動しようとすると、すでに管理者としてログインしている場合でも、「ログインする必要があります」というメッセージが表示されます。

管理者リンクをクリックすると、最初に以下のコードであるcheckAdmin.phpに移動します。

<?php
if($_SESSION['userEmail'] != 'admin@hotmail.com') {
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>";
    exit;
}
?>

私はこれで何か間違ったことをしていますか?ありがとう。

session_start();があります。admin.phpページの上部にあります。print_r($ _ SESSION);を使用しました この行を取得したので、適切な値があります。

Array ( [userEmail] => admin@hotmail.com ) 

また、session_start();を追加すると checkAdmin.phpに移動すると、画面はcheckAdminに表示され、クリックして管理ページに移動します。

admin.phpの上部にこれがあります

session_start();
require "checkAdmin.php";
include("db_info.php");
4

4 に答える 4

3

session_start()セッション変数をチェックする前に、呼び出したことを確認してください。

于 2012-05-01T22:43:28.890 に答える
2
  • $_SESSION['userEmail']ログインプロセス中に設定しなかった可能性があります
  • session_start()呼び出す必要があります。
  • あなたのセッションに実際に何があるかを確認しますprint_r($_SESSION);
于 2012-05-01T22:43:37.317 に答える
1

print_r の代わりに var_dump() を使用します。一部の文字が表示されないため、報告された文字列の長さに十分注意してください。ただし、明らかに文字列の比較が失敗する原因となります。

あなたはおそらく迷子の空白文字を持っています

于 2012-05-01T23:08:03.427 に答える
1

追加しようとしましたsession_start()か?セッション変数を探す前に、これを行う必要があります。

それを試してください:

<?php
session_start();
if($_SESSION['userEmail'] != 'admin@hotmail.com') {
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>";
    exit;
}
?>
于 2012-05-01T22:48:09.907 に答える