Login Script fehler
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alte tabelle
anfang
aufgefallen
code
datum
ersetzen
fehler
folgenden code
login
not
null
sagen
string
syntax
tabelle
umstellen
url
vorkommen
wahren zweck
zeigen
-
Huhu ,
ich habe wider mal ein Problem und zwar mit einem Login System der einfach nicht funktioniert will ^^
Die Data Base sieht so aus
CREATE TABLE `user` ( `id` int(7) NOT NULL AUTO_INCREMENT, `nick` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Die Login.php sieht so aus
<?php session_start (); if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } if (isset ($_REQUEST["fehler2"])) { echo "Erfolg"; } include ("login.html"); if(isset($_POST['submit']) && $_POST['submit'] == 'Login') { include ("config.php"); $user = ($_POST['name']) ; $password = ($_POST['password']) ; $sql = "SELECT ". "* ". "FROM ". "user ". "WHERE ". "(nick like '".$user."') AND ". "(password = '".md5 ($password)."')"; $result = mysql_query ($sql); if (mysql_num_rows ($result) > 0) { $data = mysql_fetch_array ($result); $_SESSION["user_id"] = $data["id"]; { echo "<meta http-equiv=\"refresh\" content=\"1;url=login.php?fehler2=1\">" ; } } else { echo "<meta http-equiv=\"refresh\" content=\"1;url=login.php?fehler=1\">" ; } } ?>
Die DB Connection Infos holt er ja aus der config.php
Die Posts holt der aus der login.html
Ich bekomme immer die Meldung Die Zugangsdaten waren ungültig. auch wenn die Daten 100%ig richtig eingeben hab, schon alles ausprobiert hab auch geprüft ob der Eintrag in der Datenbank auch ein MD5 hash ist...
ich weiß echt nimmer weiter währe nett wenn mir jemand helfen kann.
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
senshi-network schrieb:
wenn du dir 100pro sicher bist, dass dein create genau so ausgeführt wurde, dann muss ich dazu das hier zeigen:
CREATE TABLE `user` ( `id` int(7) NOT NULL AUTO_INCREMENT, `nick` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
was nichts anders sagen will, dass du in der 4ten zeile einen fehler hast, und zwar zwei kommas am ende ',,'. wenn das aber so ist, dann hast du die tabelle gar nicht erst erstellen können. oder du hast irgendeine andere - ev. alte - tabelle mit wirklich falschen daten drin. mehr kann man blind nicht dazu sagen.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLAT' at line 4
-
Du hostest das ganze vermutlich hier auf lima-city. Da hier standardmäßig Fehlermeldungen deaktiviert sind solltest du das mal umstellen, um eventuelle MySQL-(Syntax)Fehler zu entdecken.
Was sonst noch aufgefallen ist:
Wozu machst du im Query-String "fehler=1" oder "fehler2=1" ? Und warum machst du Weiterleitungen?
fehler2 deutet ja schon mal an, dass man sich erfolgreich eingeloggt hat. Natürlich heißt das dann auch Fehler!
fehler=1 kannst du durch fehler ersetzen, da du ja nur mit isset prüfst, ob der Parameter vorhanden ist ;)
Mal ganz abgesehen von hemiolos Bemerkung... -
hemiolos schrieb:
senshi-network schrieb:
wenn du dir 100pro sicher bist, dass dein create genau so ausgeführt wurde, dann muss ich dazu das hier zeigen:
CREATE TABLE `user` ( `id` int(7) NOT NULL AUTO_INCREMENT, `nick` varchar(30) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
was nichts anders sagen will, dass du in der 4ten zeile einen fehler hast, und zwar zwei kommas am ende ',,'. wenn das aber so ist, dann hast du die tabelle gar nicht erst erstellen können. oder du hast irgendeine andere - ev. alte - tabelle mit wirklich falschen daten drin. mehr kann man blind nicht dazu sagen.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLAT' at line 4
nein die wurde nicht so ausgeführt ^^ ich hab die einzelnd mit navicat gemacht also is die database so richtig ich hab nur nen teil aus den SQL rauskopiert damit ihr sieht wie die aufgebaut ist
hackyourlife schrieb:
Du hostest das ganze vermutlich hier auf lima-city. Da hier standardmäßig Fehlermeldungen deaktiviert sind solltest du das mal umstellen, um eventuelle MySQL-(Syntax)Fehler zu entdecken.
Was sonst noch aufgefallen ist:
Wozu machst du im Query-String "fehler=1" oder "fehler2=1" ? Und warum machst du Weiterleitungen?
fehler2 deutet ja schon mal an, dass man sich erfolgreich eingeloggt hat. Natürlich heißt das dann auch Fehler!
fehler=1 kannst du durch fehler ersetzen, da du ja nur mit isset prüfst, ob der Parameter vorhanden ist ;)
Mal ganz abgesehen von hemiolos Bemerkung...
Das habe ich gemacht weil ich sehn wollte ob die Login Funktion funktioniert weil das eigentliche ziel noch nicht wirklich fertig ist xD
Beitrag zuletzt geändert: 8.4.2012 15:36:04 von senshi-network -
Einrückungen sind auch wohl eine Zier, ohne der man weiter kommt...
Du hast hier folgenden Code:
Tja, was das wohl machen sollte ist noch nicht entdeckt worden, daran muss noch geforscht werden.if (mysql_num_rows ($result) > 0) { [...] { echo "..." ; } } else { echo "..." ; } }
Wenn du genug in deinem Gehirm gräbst könnte es ja noch vorkommen, dass du den wahren Zweck des Konstruktes findest und den Code dementsprechend umbaust -
hackyourlife schrieb:
Einrückungen sind auch wohl eine Zier, ohne der man weiter kommt...
Du hast hier folgenden Code:
Tja, was das wohl machen sollte ist noch nicht entdeckt worden, daran muss noch geforscht werden.if (mysql_num_rows ($result) > 0) { [...] { echo "..." ; } } else { echo "..." ; } }
Wenn du genug in deinem Gehirm gräbst könnte es ja noch vorkommen, dass du den wahren Zweck des Konstruktes findest und den Code dementsprechend umbaust
na jetzt auf einmal geht der Login hab jetzt Erfolg da stehen naja wenn ihr noch was findet was ich verbessern kann könnt ihr es ja gerne posten weil ich ja auch noch viel in Sache php lernen muss aber ansonsten hat es sich erledigt.
Hab nur noch ne frage soviel ich weiß müssen Cookies am Anfang eines Scripts gesetzt werden aber der soll ja erst die Login Daten überprüfen kann ich das irgendwie in der Datei noch mit einbauen oder soll ich ne Weiterleitung dafür machen ¿
Ich bedanke mich noch mal an alle -
senshi-network schrieb:
Logindaten usw prüft man sowieso normalerweise ganz am Anfang vom Script bevor noch irgend eine Ausgabe gemacht wurde.
Hab nur noch ne frage soviel ich weiß müssen Cookies am Anfang eines Scripts gesetzt werden aber der soll ja erst die Login Daten überprüfen kann ich das irgendwie in der Datei noch mit einbauen oder soll ich ne Weiterleitung dafür machen ¿
Cookies werden mittels HTTP-Header-Feldern gesetzt, deshalb muss das auch geschehen, bevor noch ein einziges Zeichen Text übertragen wird. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage