Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MD5() im mysql INSERT funzt nicht

Empfohlene Antworten

Veröffentlicht

hey leute.

ichweiss nicht warum es nicht geht.

ich möchte gerne, dass mein Passwort als MD5 Wert in der Datenbank steht. nur leider schreibt er es bei meinem Insert immer im Klartext rein. was ist hier falsch.

sql("INSERT INTO user (nick, vor, nach, password, adminstatus) VALUES ('".$_POST['nick']."','".$_POST['vor']."', '".$_POST['nach']."', md5('".$_POST['password']."'),'".$_POST['admin']."')");

Evtl könnte das daran liegen, dassl es nicht als Funktion interpretiert wird so wie du es schreibst.

Ich gehe einfach mal von PHP aus. Lass PHP das einfach vor der Übergabe in die "POST-Variable" schon in einen MD5-Hash konvertieren und speicher diesen dann in der Datenbank.

Hi,

machs mal so:


sql("INSERT INTO user (nick, vor, nach, password, adminstatus) VALUES ('".$_POST['nick']."','".$_POST['vor']."', ''".$_POST['nach']."', '".md5($_POST['password'])."','".$_POST['admin']."')");
[/PHP]

Grüße,

bytebrain

danke schon mal. aber es funktioniert leider nicht.

ich hab auch schon versucht den $_POST vorher in hash zu konvertieren. jedoch macht er dies auch nicht. ich versteh das nicht. muss wirklich an dem $_POST liegen da ich es mit klartexten hinbekomme, diese in die datenbank als hash zu schreiben

komisch

danke schon mal. aber es funktioniert leider nicht.

ich hab auch schon versucht den $_POST vorher in hash zu konvertieren. jedoch macht er dies auch nicht. ich versteh das nicht. muss wirklich an dem $_POST liegen da ich es mit klartexten hinbekomme, diese in die datenbank als hash zu schreiben

komisch

Wie konvertiert man denn einen String in einen Hash :confused:

String = Zeichenkette

Hash = assoziatives Array

Ich kann dir grad nicht folgen ;)

Grüße,

bytebrain

sql("INSERT INTO user (nick, vor, nach, password, adminstatus) VALUES ('".$_POST['nick']."','".$_POST['vor']."', ''".$_POST['nach']."', '".MD5($_POST['password'])."','".$_POST['admin']."')");

Dieser befehl müsste aber gehen.

Speichert der das Passwort so wie es eingegeben wurde in die Datenbank? Oder macht der gar nichts? Kommt eine Fehlermeldung? Oder keine?

Und noch ein kleiner tipp.. bei deinen sql befehl kann jeder der auch nur ein bisschen ahnung hat mysql injection verwenden. Darauf musst du auch achten das das keiner ausnutzt.

Mfg

Mike1990

das PW wird so in die datenbank gespeichert wie ich es eingegeben habe.

Was macht denn


// DEBUG
print md5("Hallo Welt"). "\n";
[/PHP]

:confused:

Wenn das auch nicht funzt steht dir die Funktion aus irgendwelchen Gründen nicht zur Verfügung.

Grüße,

bytebrain

das funktioniert ja. ich hab es ja schon mal anderweitig gestet:

$pass = "hallo";
$nick="timm";
sql("insert into user (nick, password) VALUES ('".$nick."', md5('".$pass."'))");[/PHP]

das funktioniert ja. ich hab es ja schon mal anderweitig gestet:

$pass = "hallo";
$nick="timm";
sql("insert into user (nick, password) VALUES ('".$nick."', md5('".$pass."'))");[/PHP]

Und das hat funktioniert???

Dann mach halt $pass = md5($_POST['passwort']);

Grüße,

bytebrain

Edit:

Das funzt bei mir wunderbar:

[PHP]
$str1 = "string";
$str2 = md5("Hallo Welt");
$sql = "INSERT INTO `table` (`value1`, `value2`) VALUES('$str1', '$str2');";

print $sql. "\n";

Bearbeitet von bytebrain

ja, das funzt auch super bei mir, nur eben nicht wenn ich das post da reinnehme. nur dann nicht. ganz komisch

Aber in $_POST['passwort'] steht schon was drin?

evtl. ein utf8 Problem ? wenn dein post als utf8 kommt, der md5 den aber nicht verträgt ?

(geraten, nicht getestet)

ja, das funzt auch super bei mir, nur eben nicht wenn ich das post da reinnehme. nur dann nicht. ganz komisch

Dann lass das POST eben raus, ist eh sicherer. Also



...
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["passwort"]);

$sql = "insert into user (user, pass) values ($user, md5('$pass'))";
...

[/PHP]

siehe PHP: mysql_real_escape_string - Manual

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.