Ankündigung

Einklappen
Keine Ankündigung bisher.

"Login" funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • "Login" funktioniert nicht

    Hallo Zusammen,

    ich bin gerade dabei, ein "Login" zu erstellen. Hierbei haben mir einige Tutorials geholfen. Dazu sagen muss ich noch, dass ich nicht Benutzername und Passwort verwende sonder lediglich Vorname und Nachname, welche mit den Daten in der Tabelle der Datenbank verglichen werden.
    Leider kann ich mich immernoch nicht anmelden, da jedes mal die Meldung kommt "Du hast dich nicht richtig eingeloggt. Diese Fehlermeldung habe ich ja selber festgelegt für Verhalten 2, sprich das Verhalten, wenn die Daten nicht übereinstimmen. Trotz mehrmaliger Überprüfung auf richtige Schreibweise und auf die Spaltennamen in der Tabelle, funktioniert es einfach nicht. Ich kann den Fehler nicht finden...
    Wäre nett, wenn mir da jemand helfen könnte...
    Danke
    PHP-Code:
    <?php
    session_start
    ();
    $verhalten 0;

    if(!isset(
    $_SESSION["vorname"]) and !isset($_GET["page"])) {
    $verhalten 0;
    }
    if(
    $_GET["page"] == "log") {
    /*
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    */
    $vorname strtolower($_POST["vorname"]);
    $nachname md5($_POST["nachname"]);

                
    $verbindung mysql_connect("*******.de""********""********")
                or die (
    "Fehler im System");

                
    mysql_select_db("*********")
                or die (
    "Verbidung zur Datenbank war nicht möglich...");
                
                
    $control 0;        
                
    $abfrage "SELECT * FROM personen WHERE vorname = '$vorname' AND nachname = '$nachname'";
                
    $ergebnis mysql_query($abfrage);
                while(
    $row mysql_fetch_object($ergebnis))
                    {
                        
    $control++;
                    }    


    if(
    $control != 0) {
    $_SESSION["vorname"] = $vorname;
    $verhalten 1;
    } else {
    $verhalten 2;
    }
    }
    ?>
    <html>
    <head>
        <title>Login</title>
        <?php
        
    if($verhalten == 1) {
        
    ?>
            <meta http-equiv="refresh" content="3; URL=seite2.php" />
        <?php
        
    }
        
    ?>
    </head>
    <body>
        <?php
        
    if($verhalten == 0) {
        
    ?>
        Bitte logge dich ein:<br />
        <form method="post" action="index.php?page=log">
            Vorname:<input type="text" name="vorname" /><br />
            Nachname:<input type="text" name="nachname" /><br />
            <input type="submit" value="Einloggen" />
        </form>
        <p><a href="register.php">Noch nicht dabei? Jetzt registrieren...</a></p>
        <?php
        
    }
        if(
    $verhalten == 1) {
        
    ?>
        Du hast dich richtig eingeloggt und wirst nun weitergeleitet....
        <?php
        
    }
        if(
    $verhalten == 2) {
        
    ?>
        Du hast dich nicht richtig eingeloggt, <a href="index.php">zurück</a>.
        <?php
        
    }    
        
    ?>
    </body>
    </html>


  • #2
    PHP.de Wiki | Debugging:Leitfaden
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Naja, der Fehler ist ja in soweit eingegrenzt, dass PHP funktioniert und eine Verbindung zur Datenbank besteht.

      Vermutlich liegt der Fehler also hier:

      PHP-Code:
      if($control != 0) {
      $_SESSION["vorname"] = $vorname;
      $verhalten 1;
      } else {
      $verhalten 2;
      }

      Kommentar


      • #4
        Bitte nicht nur die Bilder angucken, sondern alles lesen.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Sicher, dass der Nachname in der Datenbank verkryptet ist?

          PHP-Code:
          $nachname md5($_POST["nachname"]); 
          Standardtext für die Datenbankverbindung:
          Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt. Zudem ist deine Query anfällig für SQL-Injections.
          Durch einen Wechsel auf mysqli_* oder PDO greifst du aufdie modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections wirken.
          Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
          Relax, you're doing fine.
          RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

          Kommentar


          • #6
            Zitat von VPh Beitrag anzeigen
            Sicher, dass der Nachname in der Datenbank verkryptet ist?

            PHP-Code:
            $nachname md5($_POST["nachname"]); 
            Ich danke dir vielmals Jetzt klappts

            Kommentar


            • #7
              Du bist da zudem anfällig für SQL-Injections: http://php-de.github.io/jumpto/faq/#sql-injection

              Kommentar

              Lädt...
              X