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

Login FUnktioniert einfach nicht

Witschi262

Blogger
Hi,
mein Login funktioniert einfach nicht.

Habe diesen eig. 1:1 von meiner anderen Website Kopiert und nunroch Variablen und Datenbank Daten geändert. Allerdingskann ich mich nicht einloggen!

PHP:
<?php
$connection = mysql_pconnect("localhost","******","*****");
mysql_select_db("****);
$name = $_POST['name'];
$password = $_POST['password'];
if (isset ($_REQUEST["login"]))
{
$md5_password = md5($password);
$res = mysql_query("SELECT * FROM wehab_login WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($md5_password) . "'") or die(mysql_error());
if (mysql_num_rows($res) === 1)
      {
      echo "Eingeloggt!";
      }
      }
      ?>
 
Steht da im Grunde alles. Fehler eingrenzen, Zustände prüfen, Variablen prüfen, …

Lass dir per var_dump wichtige Variablen ausgeben und gucke, ob sie die erwarteten Werte enthalten, lass dir die SQL-Query vor dem Absenden ausgeben und gucke, ob sie richtig ist und so weiter.
 
Dann nimm die Abfrage mal her und führe sie direkt auf der DB aus (per phpMyAdmin oder so). Offenbar gibt die ja eine leere Menge zurück.
 
Im phpMyAdmin aus der Liste links die Datenbank auswählen und dann oben in der Tableiste unter SQL. Da einfach die Query reinkopieren.
 
#1064 - 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 ''" . mysql_real_escape_string($md5_password) .' at line 1

Und wo ist da jetzt der Fehler?!
 
Der Fehler wird dir von der Fehlermeldung genannt. Schau in Zeile 1 von dem Code nach den Du gerade geschrieben hast.
 
Also, es liegt tatsächlich an der "Passwort übergabe". Denn, wenn nur der Name geprüft wird, werde ich eingeloggt

Edit;
Jetzt, wenn ich das Korrekte Passwort eingebe, (10 zeichen lang) werde ocj eingeloggt. Wen nich nun aber z.B asd eingebe, werde ich auch eingeloggt, aber bei asdasdasd nicht

eidt ²:
Ich werde also entweder mit dem korrekten Passwort eingeloggt, oder, wenn ich irgendwas, mit 3 Zeichen als Passwort eingebe
 
Zuletzt bearbeitet:
#1064 - 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 ''" . mysql_real_escape_string($md5_password) .' at line 1

Und wo ist da jetzt der Fehler?!

Ich meinte eigentlich die fertig zusammengebaute Query und nicht den PHP-Code, der die Query generiert. ;)

PHP:
$q = "SELECT * FROM wehab_login WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($md5_password) . "'";
echo $q; // ← das
$res = mysql_query($q) or die(mysql_error());
 
#1064 - 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 '$q = "SELECT * FROM wehab_login WHERE name = '" . mysql_real_escape_string($name' at line 1
Ichcheck die fehlermeldungen nicht ?!
 
Nein, du checkst nicht, dass du nicht den PHP-Code, der den Query-String generiert, als SQL-Query ausführen sollst, sondern den fertig generierten Query-String.

Anderes Beispiel:

PHP:
$var = 'Hallo' . ' Welt!';
echo $var;

Dieses Script gibt „Hallo Welt!“ aus und genau dieses „Hallo Welt!“ ist es, was du in phpMyAdmin testen solltest. Nicht das Script, das die Ausgabe generiert.
 
PHP:
$q = "SELECT * FROM wehab_login WHERE name = '" . mysql_real_escape_string($name) . "' AND password = '" . mysql_real_escape_string($md5_password) . "'";
echo $q; // ← das
$res = mysql_query($q) or die(mysql_error());

Dieser echo-Befehl erzeugt eine Ausgabe. Die ist der fertige Query-String.
 
Nein. Ich habe auch kein Interesse daran, für etwas so wenig Kompliziertes noch auf andere Arten von Kommunikation umsteigen zu müssen.

Wenn du PHP programmieren möchtest, wäre es schlicht und ergreifend von Vorteil, zu lernen, wie das geht.

- Quellensammlung
 

Neueste Beiträge

Zurück
Oben