kostenloser Webspace werbefrei: lima-city


MySQL Anmeldung klappt nicht ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Hallo

    Habe eine MySQL DB anmeldung mit hilfe des Forum erstellt klappt auch wunderbar
    hir der code :

    <?php
    $verbindung = mysql_connect("mysql.lima-city.de", "USER......" , ".......")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    
    mysql_select_db("db_........_1") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $username = $_POST["username"];
    $passwort = $_POST["passwort"];
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $email = $_POST["email"];
    
    
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
        {
        echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
        exit;
        }
    $passwort = md5($passwort);
    
    $result = mysql_query("SELECT id FROM login WHERE Benutzername  = '$username'");
    $menge = mysql_num_rows($result);
    
    if($menge == 0)
        {
        $eintrag = "INSERT INTO login (id, Vorname, Nachname, EMail, Benutzername, Passwort) VALUES ('', '$vorname', '$nachname', '$email', '$username', '$passwort' )";
        $eintragen = mysql_query($eintrag);
    
        if($eintragen == true)
            {
            echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
            }
        else
            {
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
            }
        }
    
    else
        {
        echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
        }
    	
    ?>


    Nur das problem ist der Login

    Hier der Code:

    <?php
    session_start();
    ?>
    
    <?php
    $verbindung = mysql_connect("mysql.lima-city.de", "USER......." , ".......")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    mysql_select_db("db_.........._1") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $username = $_POST["username"];
    $passwort = md5($_POST["password"]);
    
    $abfrage = "SELECT Benutzername FROM login WHERE Benutzername  = '$username' LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    $row = mysql_fetch_object($ergebnis);
    
    if($row->passwort == $passwort)
        {
        $_SESSION["username"] = $username;
        echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
        }
    
    ?>


    Er meldet immer Benutzername und/oder Passwort waren falsch. Login , obwol sie richtig sind
    Wo liegt der Fehler?

    Philip
    :wave:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also was wissen wir wenn da steht: "Benutzername und/oder Passwort waren falsch. Login" ?

    Richtig! Die Bedingung von
    if($row->passwort == $passwort)
        {
        $_SESSION["username"] = $username;
        echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
        }



    Ist nicht erfüllt. Also sollten wir uns überlegen wieso nicht. Also lass ich mir mal alle Variablen anzeigen, und teste so den Code Schrittweise bis ich den Fehler gefunden habe...Und ein praktischer Nebeneffekt wenn man das ganze selbst macht ist, dass man dabei mehr lernt wie wenn jmd einem den richtigen Code postet. Deshalb versuch es mal selbst und zeig wenigstens ein bisschen Eigeninitative...

    Wenn du konkrete Fragen hast, oder an einer Stelle nicht weiterkommst dann frag hier wieder...
  4. industry-giant

    industry-giant hat kostenlosen Webspace.

    Setze das Session_start()

    ganz nach oben auf deine seite es muss das erste sein, was in deiner Datei steht probier´s

    danach nochmal
  5. Das steht doch ganz oben...Das Problem liegt in der Abfrage der DB bzw in der nicht erfüllten If-Anweisung, wie uns die Ausgabe klar und eindeutig sagt...

    Beitrag zuletzt geändert: 10.2.2010 22:06:01 von buechsdeluxe
  6. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Ich kann erlich gesagt keine Fehler entdecken, kannst du mir einen Tipp geben?
  7. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    $abfrage = "SELECT Benutzername FROM login WHERE Benutzername  = '$username' LIMIT 1";


    fällt es dir auf?

    Wenn nein:
    Du weist MySQL an, dir die Spalte Benutzername auszugeben und nicht die Spalte Passwort, welche du brauchen würdest...
  8. Hast du dir z.B schon einmal $row->passwort anzeigen lassen? Nur um zu sehen ob überhaupt das richtige ausgelesen wird?!
  9. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    So klapp es auch nicht habe ich schon getestet

    $abfrage = "SELECT Benutzername, Passwort FROM login WHERE Benutzername  = '$username' LIMIT 1";


    //edit: Wie lasse ich mir den row anzeigen?

    Beitrag zuletzt geändert: 10.2.2010 22:10:31 von philip-felder
  10. Lass dir die komplette Zeile (mit dem Befehl * : "SELECT * FROM tabelle WHERE ...") auslesen, mach das Limit weg, er findet ja sowieso nicht mehr wie einen Datensatz da jeder Benutzer nur einmal vorhanden ist.

    Dann lass dir $row->passwort anzeigen, und schau ob das richtige drin steht...

    So wie man eben eine Ausgabe bei PHP macht, mit echo...

    Beitrag zuletzt geändert: 10.2.2010 22:11:59 von buechsdeluxe
  11. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    philip-felder schrieb:
    So klapp es auch nicht habe ich schon getestet

    $abfrage = "SELECT Benutzername, Passwort FROM login WHERE Benutzername  = '$username' LIMIT 1";


    //edit: Wie lasse ich mir den row anzeigen?


    Das MUSS aber so sein!


    Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

    Quelle: http://de.php.net/mysql_fetch_object

    Das heißt du musst deine if-Abfrage so machen:
    if($row->Passwort == $passwort)
  12. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Achso
    Vielen Dank hat geklappt :->

    Kann man auch ein passendes loguot machen hier steht nix : http://www.php-einfach.de/tuts_mysql_login.php
    bb Philip

    Beitrag zuletzt geändert: 10.2.2010 22:16:18 von philip-felder
  13. Gibt ja noch mehr Tutorials...

    Tip: Die Session-Variable muss dazu verändert werden...
  14. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Ja, ganz einfach:
    <?php
    session_start();
    unset($_SESSION["username"]);
    ?>
    weiterer HTML-Code
  15. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Danke, werde es mal testen
    Hat geklappt!

    Vielen Dank
    Philip

    Beitrag zuletzt geändert: 10.2.2010 22:26:30 von philip-felder
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!