Veröffentlicht 22. Oktober 200915 j Moin, ich bin grad eingestiegen in die PHP-Programmierung und bastel mir gerade ein Login/Register -Skript. Nun hab ich ein Problem. Der beide SQL-Befehlszeilen gehen ganz normal auszuführen. Nur der vergleich ob der Benutzername schon vergeben ist liefert immer das gleiche ergebnis. Egal ob es den Benutzer wirklich schon gibt, oder nicht. 2. Problem ist das er den INSERT nicht ausführt. Auch wenn der vergleich nicht funktioniert, der neue eintrag in die Tabelle sollte ausgeführt werden. Hat jemand eine Idee ?!? radiohead1 <?php include("mysql.php"); $reguser = $_POST["reguser"]; $regpassw1 = $_POST["regpassw1"]; $regpassw2 = $_POST["regpassw2"]; if($regpassw1 != $regpassw2) { echo "Password stimmt nicht überein"; } else { $queryreg = "Select username from users where username like '" & $reguser & "'"; $result = mysql_query($queryreg); if($result == $reguser) { echo "Benutzername schon vergeben"; } else { $queryregister = "INSERT INTO users (username, password) VALUES ('" & $reguser & "', '" & $regpassw1 & "')"; $result1 = mysql_query($queryregister); echo "Sie sind registriert"; } } mysql_close(); ?>[/PHP]
22. Oktober 200915 j zu 1. solltest du dir mal angucken was in "$result" drinsteht... da steht naemlich nicht der username drin zu 2. lass dir mal ne fehlermeldung ausgeben -> PHP: mysql_error - Manual Ted
22. Oktober 200915 j Hi, Wandle das hier .... $queryreg = "Select username from users where username like '" & $reguser & "'"; $result = mysql_query($queryreg); if($result == $reguser) { echo "Benutzername schon vergeben"; }[/PHP] mal in das hier um: [PHP] $queryreg = "Select username from users where username = $reguser"; $result = mysql_query($queryreg); $row = mysql_fetch_assoc($result); if ($row['username'] == $reguser ) { echo "Benutzername schon vergeben"; }
22. Oktober 200915 j Außerdem könntest du dich mal über SQL-Injections schlau machen. SQL-Injection ? Wikipedia Eingaben vom Benutzer sollten nicht ungefiltert in Datenbankabfragen übernommen werden. PHP: mysql_real_escape_string - Manual $regpassw1 = mysql_real_escape_string($_POST["regpassw1"]); $regpassw2 = mysql_real_escape_string($_POST["regpassw2"]); [/PHP]
23. Oktober 200915 j wenn du deine ersten schritte erfolgreich abgeschlossen hast, würde ich dir raten, dich in PEAR (umfangreiche PHP-Klassenbibliothek) hier speziell Quickform2 (Klassen für Formulare), Auth (Klassen für Authentifizierung) und Smarty (Templateengine zur Trennung von Design und Code) einzulesen. auch wenn die einarbeitung einiges an zeit erfordert und für einen anfänger am anfang erschlagend wirkt, ist der spätere nutzen bei der entwicklung von wirklich umfangreichen softwarelösungen enorm.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.