MySQL login klappt nicht ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
argument
benutzername
code
datenbank
eintrag
eintragen
email
fehler
feld
login
menge
nachname
not
ordner
spalte
speichern
tabelle
test
verbindung
vorname
-
Hallo
Wo ist mein fehler, habe eine extra html für formular.
<?php $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "Passwort") 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 username LIKE '$username'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, Benutername, 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>"; } ?>
Im Browser steht "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 22
Fehler beim Speichern des Benutzernames. Zurück"
Vielen Dank
Philip -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die Fehlermeldung besagt dass die Abfrage des mysql_num_rows sprich "$result" keine vorhandene/korrekte MySQL -Quelle abfrägt ist. D.h. Irgendetwas stimmt in $result nicht. Also alles überprüfen und auch Syntax checken...
-
versuche mal das ganze so zu lösen.
mysql_query("SELECT id FROM login WHERE username LIKE '".$username."'");
allerdings ist die query mit LIKE für ein login sowieso ungeeignet.
angenommen ein user heist "franz", du gibst aber nur "anz" als login (mit dem passwort für franz) ein kommst du trozdem rein.
besser wäre
mysql_query("SELECT id FROM login WHERE username='".$username."'");
mfg -
Leider klappt es nicht
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 22
Fehler beim Speichern des Benutzernames. Zurück -
äh... die tabelle heißt "login"
edit: Klappt aber immer noch nicht
Beitrag zuletzt geändert: 10.2.2010 17:59:00 von philip-felder -
das kann garnich gehen.
du prüfst ob die spalte username einen bestimmten wert enthält. die spalte müsste aber korrekterweise Benutzername heißen
statt
SELECT id FROM login WHERE username LIKE <username>
also
SELECT id FROM login WHERE Benutzername LIKE <username>
achtund: anders als bei den schlüsselwörtern wie SeLecT und FroM (:D) kommt es bei den spaltennamen auf groß- und kleinschreibung an.
mfg -
Klappt leider immer noch nicht
$result = mysql_query("SELECT id FROM login WHERE Benutzername='".$username."'"); $menge = mysql_num_rows($result);
P.S.: habe diese anleitung benutzt (nur halt angepasst)
http://www.php-einfach.de/tuts_mysql_login.php
-
//edit: mir fällt gerade etwas auf: Und zwar versuchst du oben die id aus der Tabelle login auszulesen. Allerdings hast du wohl gar keine Spalte mit dem Namen id wie man anhand von ""$eintrag" sehen kann...d.h. du solltest das folgendermaßen ändern:
$result = mysql_query("SELECT Vorname FROM login WHERE Benutzername = '$username'"); $menge = mysql_num_rows($result);
Und
eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, Benutzername, Passwort) VALUES ('$vorname', '$nachname', '$email', '$username', '$passwort' )"; $eintragen = mysql_query($eintrag);
Man beachte das fehlende z bei Benutzername...
Oder fügst in die Tabelle login noch ein ID-Spalte ein und benutzt deine alte abfrage...
Beitrag zuletzt geändert: 10.2.2010 18:26:13 von buechsdeluxe -
Das SQL-Kommando wurde von MySQL als "fehlerhaft" eingestuft:
Entweder enthält es einen ungültigen Spalten- oder Tabellennamen, oder sonst irgendetwas. Füge einfach mal
hinter die Zeile mit Deinem Query ein und gib den String $err aus. Damit kannst Du Dir die MySQL-Fehlermeldung zeigen lassen!$err=mysql_error();
Beitrag zuletzt geändert: 10.2.2010 18:30:19 von cars-ten -
cars-ten schrieb:
Entweder enthält es einen ungültigen Stalten oder Tabellennamen,...
Eben, überprüfe ob deine Tabelle wirklich ein Spalte Names ID hat...siehe meinen letzten Beitrag... -
Leider krige ich es nicht hin hier nochmal der code:
<?php $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "passwort") 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 Vorname FROM login WHERE Benutzername = '$username'"); $err=mysql_error(); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, 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>"; } ?>
-
Kommt eine Fehlermeldung? Wenn ja poste diese nochmal.
Zeig mal noch deine Mysql-Tabelle. Also alle Spaltennamen + Datentyp.
Beitrag zuletzt geändert: 10.2.2010 19:41:09 von buechsdeluxe -
Hier die Fehlermeldung:
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 23
Fehler beim Speichern des Benutzernames. Zurück"
Tabellenname: login
id int(10) UNSIGNED auto_increment
Vorname varchar(150) latin1_swedish_ci
Nachname varchar(150) latin1_swedish_ci
E-Mail varchar(150) latin1_swedish_ci
Benutername varchar(150) latin1_swedish_ci
Passwort varchar(32) latin1_swedish_ci
Hier das Formular:
<form action="eintragen.php" method="post"> Vorname:<br> <input type="text" size="24" maxlength="50" name="vorname"><br><br> Nachname:<br> <input type="text" size="24" maxlength="50" name="nachname"><br><br> E-Mail-adresse:<br> <input type="text" size="24" maxlength="50" name="email"><br><br> Benutzername:<br> <input type="text" size="24" maxlength="50" name="username"><br><br> Passwort:<br> <input type="password" size="24" maxlength="50" name="passwort"><br> Passwort wiederholen:<br> <input type="password" size="24" maxlength="50" name="passwort2"><br> <input type="submit" value="Anmelden"> </form>
Beitrag zuletzt geändert: 10.2.2010 19:40:57 von philip-felder -
Versuch es mal so:
<?php $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "passwort") 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); $abfrage = "SELECT * FROM login WHERE Benutzername = '$username'"; $result = mysql_query($abfrage); if(mysql_num_rows($result) != 0) { echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>"; } else { $eintrag = "INSERT INTO login (Id, Vorname, Nachname, E-Mail, 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>"; } } ?>
Beitrag zuletzt geändert: 10.2.2010 19:50:12 von buechsdeluxe -
Leider:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 23
Fehler beim Speichern des Benutzernames. Zurück -
ich hab mein letzten beitrag nochmal geändert. Versuche es nochmal mit dem Code...
-
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 25
Fehler beim Speichern des Benutzernames. Zurück -
Hmm komisch, hast du ICQ?
Ich erstelle mal eben eine identische Tabelle bei mir und teste das dann alles... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage