• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formulardaten mit DB-Daten vergleichen

stenz

Mitglied
Hallo,
versuche gerade ein Anmelde-Formular zu erstellen, in dem der User einen Namen und Passwort eingeben kann.
HTML:
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <form action="daten.php" method="post">
            User: <input type="text" name="name" /><br/>
            Password: <input type="text" name="pw" /><br/>
            <input type="submit" />
            <input type="reset" />
        </form>
    </body>
</html>
Zuerst übernehm ich die Daten und speichere Sie in Variablen ab.
Danach verbinde ich mich mit der DB und der dazugehörigen Tabelle.
Und danach überprüfe ich den Namen. Jedoch habe ich dazu einige Fragen. :)
PHP:
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <?php
            /* Daten übertragen */
            $name = $_POST["name"];
            $pw = $_POST["pw"];
            echo "Dein Username: ".$name."<br />Dein Passwort: ".$pw;
            
            /* Datenbank auswählen */
            mysql_connect("","root","");
            mysql_select_db("user");
            
            /* Tabelle aussuchen */
            $abfrage = mysql_query("select * from `user`");    

            /* Name überprüfen */
            while ($ds = mysql_fetch_assoc($abfrage))
            {
                if ($ds["name"] == $name)
                    echo "<br />Name schon vorhanden";
                else
                    $eintrag = mysql_query("INSERT INTO `user`.`user`(`id`,`name`,`password`) VALUES(NULL,'$name','$pw');");
            }
        ?>
    </body>
</html>
1. Falls kein Eintrag in der DB vorhanden ist, werde die eingegebenen Daten nicht eingetragen in die Tabelle, wieso?
2. Falls ein Eintrag vorhanden ist, werden die Daten eingegeben, aber falls meine DB so ausschaut:
---id---name---pw---
---1---admin---123--- (Diesen Eintrag muss ich manuell machen)
---2---abcde--123--- (Erster User der sich eingetragen hat)

und sich jetzt noch ein User mit dem Namen abcde anmeldet, wird die Überprüfung in der Schleife einfach ausgesetzt, wieso? Und mysteriöserweise wird die Überprüfung nicht ausgesetzt, wenn der User den Namen admin eingibt...

Hoffe das ihr mir weiterhelfen könnt :)

gruß stenz
 
Wie wärs, wenn Du das SQL-Statement etwas flexibler aufbaust und dort gleich prüfst, ob das Name schon vorhanden ist? ;)

Code:
$abfrage = mysql_query("select * from `user` WHERE `name` = '".mysql_escape_string($name)."'");

Ergibt dann mindestens einen Datensatz, wenn er schon vorhanden ist.
 
Dankeschön :)
Hatte ich gerade eben auch herausgefunden, bei dem Wirwar was da Google geliefert hatte, hat die Sortierung länger gedauert. :P Werde mein Lösungsvorschlag später posten und noch weitere Fragen evtll. stellen. :)
 
Zurück
Oben