If Abfrage

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

  • If Abfrage

    Hallo Zusammen,
    Ich bin an einem LogIn Script am Arbeiten.
    Mein Problem: Wen ich beim Login die richtigen Daten eingebe wird die seite: sichere_seite.php eingecludet, was ja richtig so ist. Gebe ich aber falsche Daten an, wird der else zweig nicht ausgeführt, das heisst ich bekomme einfach eine leere Seite!

    PHP-Code:
    <?php # log.php
    error_reporting(E_ALL);
    $user $HTTP_POST_VARS["user"];
    $pw $HTTP_POST_VARS["passwort"];

    include(
    "config.php");
    $sql "SELECT User, Passwort from Users WHERE User = '$user'";
    $ver mysql_connect($server$dbuser$dbpw) or die("Es konnte keine Verbindung hergestellt werden!");
    mysql_select_db($db$ver) or die ("Die Datenbank wurde nicht gefunden!");
    $res mysql_query($sql) or die ("Ein Fehler ist aufgetreten");
    while (
    $row mysql_fetch_row($res))
    {
    if (
    $user == $row[0] and $pw == $row[1])
    {
            include(
    "sichere_seite.php");
    }
    else 
    {
            echo 
    "Falsche Daten!";
    }
    }        
    ?>
    Bücher für Programmierer

  • #2
    Re: If Abfrage

    Abfrage nur nach User, und dann auch noch eine Schleife über das Ergebnis - ziemlich unsinnig.
    (Oder wie viele Datensätze hast du für einen User?)


    Wie man's "richtig" macht, wurde hier schon oft beschrieben - Abfrage nach User und Passwort, und dann Anzahl Ergebnisdatensätze auswerten.
    Bei Null waren die Daten wohl falsch, bei eins alles korrekt - und bei mehr hast du wohl ein Problem.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich frage ja aber nur nach dem user der den Usernamen enthält. WHERE User = '$user'"

      Und es kann nur ein User diesen namen enthalten, so wird das in der registrierung festgelegt.
      Bücher für Programmierer

      Kommentar


      • #4
        Original geschrieben von andygyr
        Und es kann nur ein User diesen namen enthalten, so wird das in der registrierung festgelegt.
        Eben - und wofür willst du dann eine While-Schleife machen, wenn überhaupt nur maximal ein Datensatz zurückkommen kann?

        Da liegt ja auch dein ursprüngliches Problem - denk' mal ganz scharf nach, wie oft wird deine While-Schleife wohl durchlaufen, wenn gar kein Datensatz zurückgeliefert wurde ...?

        Also mach's doch bitte gleich vernünftig, wenn dir schon gesagt wird, welcher Weg das ist - und klammer dich nicht an deinen Unfug.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          PHP-Code:
          $row mysql_fetch_row($res);

          if (
          $user == $row[0] and $pw == $row[1])
          {
                  include(
          "sichere_seite.php");
          }
          else 
          {
                  echo 
          "Falsche Daten!";

          So sollte es dann gehen.

          Beachte aber dabei auch die Sicherheit fals user und pw leer ist!

          Kommentar


          • #6
            PHP-Code:

            $sql 
            "SELECT User, Passwort from Users WHERE User = '$user' AND Passwort = '$pw' ";
            $res mysql_query($sql) or die ("Ein Fehler ist aufgetreten");

            IF (
            mysql_num_rows($res) > 0) {
            $row mysql_fetch_array($res));

            echo 
            "Hallo ".$row["User"]." du bist eingeloggt";
            include(
            "sichere_seite.php");
            }
            ELSE {
            echo 
            "ERROR";

            Nun musst du dich nur noch um die Sicherheit kümmern

            Kommentar

            Lädt...
            X