Sven Rautenberg: Password() Funktion in MySQL

Beitrag lesen

Moin!

mysql> update tbl_scpportalusers set scppassword=md5('hallo') where scplogin='nutrishop';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select * from tbl_scpportalusers where scplogin='nutrishop' and scppassword = md5('hallo');
Empty set (0.00 sec)

Irgendwas mach ich hier wohl grob falsch oder?

Ja. Du solltest md5() in _PHP_ benutzen, nicht in MySQL.

Also sowas:
$sql = "UPDATE tbl.... SET password='".md5($password)."' WHERE blah";
mysql_query($sql);

Vorteil: Du kannst dir den SQL-String zu Testzwecken vorher noch mal ausgeben lassen.

Du kannst dir auch den Select-String ausgeben lassen.

Du kannst mit einem Admin-Programm (Kommandozeile oder phpMyAdmin) direkt in die Passwortspalte schauen und SELECT sowie Inhalt der Spalten vergleichen, weil du das codierte Passwort im SQL-String drin hast.

Wenn das dann nicht übereinstimmt, ist irgendwas mit md5() kaputt, oder mit der Datenbank.

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)