Ankündigung

Einklappen
Keine Ankündigung bisher.

Zusätzliche Abfrage zu Passwort

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zusätzliche Abfrage zu Passwort

    Hallo,
    auf meiner Login-Seite wird mit folgendem Code überprüft ob das eingegebene Passwort mit dem Benutzernamen übereinstimmt (Auszug):
    PHP-Code:
    <?php
    while ($row mysql_fetch_object ($abfrage)) {
    if (
    $row->passwort==$passwort) {
    inhalt($email);
    }
    ?>
    Der Code funktioniert. Meine Frage ist jetzt wie ich zusätzlich zu dieser Abfrage noch abfragen kann, ob der Benutzer dem Benutzertyp 0 angehört. Es gibt in der gleichen Tabelle "benutzer", da wo das Passwort und der Benutzername ist, eine weitere Spalte "benutzertyp".

    Falls der Benutzer dem Benutzertyp 0 NICHT angehört, soll er nicht weiter kommen.

    Also ungefähr so:
    PHP-Code:
    <?php
    while ($row mysql_fetch_object ($abfrage)) {
    if (
    $row->passwort==$passwort) & ($row->benutzertyp==0) {
    inhalt($email);
    }
    ?>
    Kann man das so in der Syntax schreiben?

    Danke für die Hilfe!

  • #2
    PHP-Code:
    <?php
    while ($row mysql_fetch_object ($abfrage)) {
    if (
    $row->passwort==$passwort and $row->benutzertyp==0) {
    inhalt($email);
    }
    ?>
    [edit]
    Oder wie HStev im nächsten Beitrag sagen wird:

    PHP-Code:
    <?php
    while ($row mysql_fetch_object ($abfrage)) {
    if (
    $row->passwort==$passwort) && ($row->benutzertyp==0) {
    inhalt($email);
    }
    ?>
    wichtig ist, dass du bei der zweiten Variante jede Bedingung einzeln einklammerst.

    [/edit]

    Kommentar


    • #3
      fast

      ein einzelnes & ist ein Bit Operator also must du && verwenden und beide Vergleiche noch mal Klammern damit IF die Syntax aktzeptiert

      PHP-Code:
      <?php
      while ($row mysql_fetch_object ($abfrage)) {
      if ((
      $row->passwort==$passwort) && ($row->benutzertyp==0)) {
      inhalt($email);
      }
      ?>
      [edit] alternativ zu && geht auch AND wie Deblu es geschrieben hat
      Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

      Kommentar


      • #4
        Wieso nicht in der SQL-Anweisung abfragen?
        [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

        Kommentar


        • #5
          Wies aussieht holst du aber alle Datensätze aus der Datenbank und vergleichst sie.

          Warum verbesserst du deine SELECT-Abfrage also nicht?

          PHP-Code:
          <?php
          // evtl vorher Passwort verschlüsselt vergleichen
          $result mysql_query("SELECT IF(pwd = '$password', 1, 0) AS pwdCorrect, usertype FROM tableWHERE username = '$username' LIMIT 1");
          if (
          mysql_num_rows($result) == 0) {
            
          // username gibts nicht
          } else {
            
          $current mysql_fetch_assoc($result);
            
          // $current ist jetzt ein Array mit der Info ob das Passwort richtig ist ($current['pwdCorrect'] == 1) & in der der Benutzertyp (usertype) steht
          }
          ?>

          Kommentar


          • #6
            Zitat von Deblu
            wichtig ist, dass du bei der zweiten Variante jede Bedingung einzeln einklammerst.
            nicht unbedingt

            [edit] besseres Beispiel

            PHP-Code:
            <?php
            $test1 
            10;
            $test2 15;

            if (
            $test1 == 10 AND $test2 == 15)
                echo 
            "Test bestanden";
            else
                echo 
            "Test nicht bestanden";

            echo 
            "
            "
            ;
            // -------------------------------

            if ($test1 == 10 AND $test2 != 15)
                echo 
            "Test bestanden";
            else
                echo 
            "Test nicht bestanden";
                
            echo 
            "
            "
            ;
            // -------------------------------

            if ($test1 == 10 && $test2 == 15)
                echo 
            "Test bestanden";
            else
                echo 
            "Test nicht bestanden";

            echo 
            "
            "
            ;
            // -------------------------------
                
            if ($test1 == 10 && $test2 != 15)
                echo 
            "Test bestanden";
            else
                echo 
            "Test nicht bestanden";
            ?>
            Ausgabe:

            Test bestanden
            Test nicht bestanden
            Test bestanden
            Test nicht bestanden
            Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

            Kommentar

            Lädt...
            X