2016-05-21 8 views
-2

私はアーケードスクリプトで作業しています。私が行うことに決めたのはログインサインアップシステムでした。とにかく、2つのサインアップページがあります。 1つは管理者用で、もう1つはユーザー用です。管理者は別のディレクトリ(例:admincp/signup.php)に隠されます。だから、あなたがユーザーとして登録すると、魔女はすべて完璧に動作します。すべてのデータが作用しています。ユーザーとして登録すると、adminという名前のデータベースの行が0に設定されます(管理者のサインアップでは1に設定されます)。管理者確認機能が間違った結果を返します

<?php 

    // Exeute the connection to the database 
    require("common.php"); 

    // Is the user logged in? 
    if(empty($_SESSION['user'])) 
    { 
     // If the are not lets send em away 
     header("Location: login.php"); 

     // We MUST do this. Or else people can view this page without logging it 
     die("Redirecting to login.php"); 
    } 
    function isAdmin($number) 
    { 
     if ($number = 0) 
     { 
      return false; 
     } 
     if ($number = 1) 
     { 
      return true; 
     } 
     if ($number > 1) 
     { 
      // adminTF is short for adminTrueFalse 
      return "Invalid adminTF key"; 
     } 
    } 

?> 
Hello 
<?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?>, 
you have <?php echo htmlentities($_SESSION['user']['coins'], ENT_QUOTES, 'UTF-8'); ?> 
coins and you are <?php 
         if (isAdmin(0) == true) 
         { 
          echo "an admin."; 
         } 
         else 
         { 
          echo "not an admin."; 
         } 
        ?> 
<br /> 
<a href="memberlist.php">Memberlist</a><br /> 
<a href="edit_account.php">Edit Account</a><br /> 
<a href="logout.php">Logout</a> 

わかりましたので、あなたがそれを読んだときに、ユーザーが管理者であるかどうかを教えてくれる関数があることがわかります。私はデバッグしているので、私は管理者ではないことを私に伝えたいだけです。しかし、私が必要なキーのためにゼロを差し込んでも、それは私が管理者であると私に伝えます。私は1つではない(私の数がゼロなので)、それは「あなたは管理者です」と言っているはずです。

+0

"申し訳ありませんが別のサイトを置くために、全体のコードは関連しており、このウェブサイトは私の知識の後にもうテキストにフィットしません" - StackOverflowは文字制限がありません。 –

+0

btw、あなたの 'isAdmin'関数はほとんどノーオペレーションです。ちょうど 'if($ adminTF)'が実行します( '$ adminTF'はadminフラグを含む変数です)。 –

+0

あなたの質問のタイトルをあなたの実際の問題に関連するものに更新してください。 – naomik

答えて

3

==(比較)の代わりに=(代入演算子)を使用しています。

+0

ご協力いただきありがとうございます。私はそれを1行ずつ読みながら45分間座っていたとは思っていません。助けてくれてありがとう:D @Alex –

関連する問題