2016-05-21 10 views
-2

So arbeite ich an einem Arcade-Skript und das erste, was ich beschlossen habe zu tun, war das Login-Anmelde-System. Wie auch immer, es gibt 2 Anmeldeseiten. Eine für den Administrator und eine für die Benutzer. Die Admins werden in einem anderen Verzeichnis versteckt (zB admincp/signup.php). Also, wenn Sie sich als Benutzer registrieren, funktioniert alles perfekt. Alle Daten erhalten funktioniert ect. Wenn Sie sich als Benutzer registrieren, wird eine Zeile in der Datenbank admin auf 0 gesetzt. (Die Admin-Anmeldung würde es auf 1 setzen).Admin-Check-Funktion gibt ein falsches Ergebnis zurück

<?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> 

Okay, so, wenn Sie sie lesen können Sie sagen, es eine Funktion hat, die angeblich um mir zu sagen, ob der Benutzer ein Admin ist oder nicht. Weil ich Debugging bin, möchte ich nur, dass ich sage, dass ich kein Administrator bin. Aber selbst wenn ich Null für den erforderlichen Schlüssel einfüge, sagt es mir immer noch, dass ich ein Administrator bin. Obwohl es mir sagen soll, dass ich keiner bin (weil die Zahl Null ist), sagt es "du bist ein Admin".

+0

"Es tut mir leid, dass ich eine andere Seite eingefügt habe, der ganze Code ist relevant und diese Webseite ließ mich nicht mehr nach dem Text passen" - StackOverflow hat meines Wissens kein Zeichenlimit. –

+0

BTW, Ihre 'isAdmin' Funktion ist so ziemlich ein No-Op. Just 'if ($ adminTF)' wird tun (wobei '$ adminTF' die Variable ist, die das admin Flag enthält) –

+0

Aktualisiere deinen Fragentitel auf etwas, das für dein tatsächliches Problem relevant ist. – naomik

Antwort

3

Sie verwenden = (Zuweisungsoperator) anstelle von == (Vergleich).

+0

Vielen Dank für Ihre Hilfe Kumpel. Ich kann nicht glauben, dass ich für 45 Minuten saß und es Zeile für Zeile las und ich sah das nie. Danke für deine Hilfe: D @Alex –

Verwandte Themen