Ankündigung

Einklappen
Keine Ankündigung bisher.

problem beim login.php

Einklappen

Neue Werbung 2019

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

  • problem beim login.php

    Hallo Forum,

    ich bin hier neu,
    tut mir leid, wenn ich mein Thema in falsche Kategorie postere:


    Ich bin noch PHP ein Einsteiger,
    es geht um den folgenden Tutorial YouTube - PHP Tutorials: Register & Login: User login (Part 2) (Teil 2).

    Mein Script:

    PHP-Code:
    <?php

        session_start
    ();

        
    $username $_POST["username"];
        
    $password $_POST["password"];
        
        if (
    $username&&$password)                 // Wenn Benutzerdaten im folgendem Datenbank gefunden werden, dannn ----> else
        
    {
            
    $connect mysql_connect("localhost","root","") or die("Couldn´t connect!");
            
    mysql_select_db("phplogin") or die("Couldn´t find Database!");
            
            
    $query mysql_query("SELECT * FROM users WHERE username='$username'");            // TABELLE users muss angelegt werden
            
            
    $numrows mysql_num_rows($query);
            
            if(
    $numrows!=0)
            {
                while (
    $row mysql_fetch_assoc($query));            
                {
                    
    $dbusername $row["username"];    
                    
    $dbpassword $row["password"];
                }
                
                
    //check to see if they match!
                
    if ($username==$dbusername&&$password==$dbpassword)
                {                
                    echo 
    "Sie sind erfolgreich angemeldet!";
                }
                
                else
                    echo 
    "Bitte überprüfen Sie Ihr Kennwort!";
            }        
            else
                die (
    'Der Benutzer exestiert nicht!');  //Falls keine richtige Benuterdaten angegeben werden, kommt die Fehlermeldung
            
        
    }

        else
            die(
    'Bitte geben sie Ihre Zugangsdaten');    // Falls nichts eingegeben wird und auf LogIn geklickt wird kommt die Fehlermeldung






























    ?>
    Mein Problem ist, wenn ich meine richtige Zugangsdaten angebe (ich habe einen User angelegt)
    bekomme ich die Fehlermeldung: "Bitte überprüfen Sie Ihr Kennwort!"

    Ich bin mir sicher, dass meine Zugangsdaten richtig sind und mein mysql_connect auch stimmt.

    Kann mir bitte jemand helfen?
    Auf einen Tipp würde ich mich sehr freuen


    Mit freundlichen Grüßen
    Aydin



    ------> Aydin-G


  • #2
    Dann lass dir doch mal den Username aus der Eingabe und den Username aus der Datenbank ausgeben (bzw. das Passwort). Dann siehst du ja welches der beiden Teile nicht richtig ist.

    Und zum anderen solltest du dich um SQL Injection schlau machen. Dein Skript würde, wenn es so online verwendet werden würde, eine gefährliche Sicherheitslücke haben durch die ein paar Probleme entstehen können.

    Kommentar


    • #3
      Welche fehler werden ausgegeben? error_reporting an?

      Außerdem
      Am besten machst du die Abfrage direkt auf
      Code:
      $query = mysql_query("SELECT  COUNT(id) 
      FROM users 
      WHERE username='" .  mysql_real_escape_string($username) . "' AND password='" . md5(password)  . "'");
      Und überprüfst dann ob Ergenisse zurückkommen, bspw. mit mysql_num_rows > 0
      "My software never has bugs, it just develops random features."
      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

      Kommentar


      • #4
        PHP-Code:
                  while ($row mysql_fetch_assoc($query)); 
        FInde ich auch sehr merkwürdig für den Anwendungszweck.
        --

        „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
          Eventuell ein Kandidat für den Code-Smell-Artikel, nikosch.

          [edit] Das Semikolon ist wohl der Übeltäter. Bin mir nicht sicher, ob du darauf hinauswolltest.
          http://hallophp.de

          Kommentar


          • #6
            Definitiv sollten wir das in Code-Smells einbauen, sieht man sehr oft dass einzelne Zeilen in einer Schleife aufgerufen werden.

            Kommentar


            • #7
              Zitat von Asipak Beitrag anzeigen
              Eventuell ein Kandidat für den Code-Smell-Artikel, nikosch.
              Definitiv.
              Ist ja echt ein Wahnsinn, was man alles für "Schwachsinn" im Netz und auch in der Literatur findet..

              Kommentar


              • #8
                Am Rande: Ist
                PHP-Code:
                $username==$dbusername 
                nicht unnötig?

                Kommentar


                • #9
                  Wow, das Semikolon hatte ich gar nicht gesehen! Ich meinte nur, dass ein Login-DS normalerweise einmalig pro Tabelle sein sollte.

                  Das semikolon habe ich schon bei Standardfehler drinnen, aber die unnütze Schleife nehme ich auf.

                  [edit]

                  Das dürfte dann auch die Lösung der Frage sein.
                  Wenn PHP wieder aus der Schleife herauskommt ist $row ja false, also leer. Damit auch $row["username"] und $row["password"] und damit $dbusername und $dbpassword.
                  --

                  „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


                  • #10
                    Der einzige Fehler ist das Youtube-Tutorial!

                    Wenn ich noch mal nachdenke, macht das Semikolon wohl doch nichts kaputt, bricht nur die Schleife nach der ersten Zeile ab, oder? Bin mir gerade nicht mehr sicher.

                    [edit] Okay, also doch das Semikolon.
                    http://hallophp.de

                    Kommentar


                    • #11
                      Ahhh nu seh ichs auch ... wunder mich über welches Semikolon ihr die ganze Zeit sprecht ...

                      Definitiv noch nen Kandidat.

                      Kommentar


                      • #12
                        Hab es auch nur gesehen, weil nikosch die Zeile so schön gequotet hat.
                        http://hallophp.de

                        Kommentar


                        • #13
                          @Trainmaster: Guter Hinweis. Wenn der Code richtig funktioniert, ist das tatsächlich unnötig.
                          --

                          „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

                          Lädt...
                          X