[code] Passwörter mit md5 verschlüsselt speichern und abfragenSie befinden sich: Home > Webmaster News
Dies ist eine Ergänzung zum Passwort-Tutorial
Unsere Usertabelle hat folgenden Aufbau:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL auto_increment,
`username` varchar(12) NOT NULL default '',
`passwort` varchar(32) NOT NULL default '',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Wenn ein neuer User sich anmeldet, so soll er selbst einen Usernamen und ein Passwort vorgeben. Wir müssen dann zuerst prüfen, ob der
Username schon vorhanden ist und die Eingabe ggf. abweisen:
<?php
$sql = "SELECT
count(*) AS COUNT
FROM
user
WHERE
username = '" . mysql_real_escape_string(trim($_POST['username'])) . "'";
$erg = mysql_query($erg) or die (mysql_error());
$row = mysql_fetch_assoc($erg);
if($row['count'] > 0) {
echo 'Username schon gespeichert';
} else {
$sql = "INSERT INTO
user
SET
username ='". mysql_real_escape_string(trim($_POST['username'])) . "'
passwort = '" . md5($_POST['passwort']) . "'
name = '" . mysql_real_escape_string(trim($_POST['name'])) . "'";
mysql_query($erg) or die (mysql_error());
echo 'Ihre Daten sind gespeichert. Sie können sich nun einloggen.';
?>
Beim Einloggen gibt der Anmelder nun seinen usernamen und sein passwort in ein Formular ein. Wir müssen nun nach 'username' und md5
('passwort') suchen:
<?php
$sql = "SELECT
name
FROM
user
WHERE
username = '" . mysql_real_escape_string(trim($_POST['username'])) . "'
AND
passwort = '" . md5($_POST['passwort']) . "'";
?>
Achten Sie darauf, dass das Passwortfeld in der Datenbank 32 Zeichen lang ist. Falls es kürzer definiert wurde, wird ein Teil beim Speichern abgeschnitten und der Vergleich bei der Anmeldung scheitert.
Ihre Anwendung sollte eine Funktion haben, mit der ein User sich helfen kann, wenn er sein passwort vergessen hat. Da das vergessene
Passwort aber verschlüsselt gespeichert ist, muss das Script ein neues Passwort erzeugen, dies im Klartext an den User mailen, und
den zugehörigen md5-hash speichern.
Ein neues 6-stelliges Passwort können Sie z.B. so erzeugen lassen:
<?php
$passwort = md5 (uniqid (rand()));
$passwort = substr($passwort,0,6);
?>
(Quelle: Wolfgang ), Eingetragen am 27.August.2008 
Ähnliche News 27.08.2008 - [Code] Zaehlen, wie häufig ein Wort in einem ...
27.08.2008 - [Tutorial] Passwörter für userbereich er...
26.08.2008 - [Code] Banner ausliefern und pro Linkpartner z&aum...
05.08.2008 - [Video-Tutorial] Mysql Datenbank anlegen im PhpMya...
30.07.2008 - [Code] Counter mit MySQL
Letzten Webmaster News 10.09.2008 - [Tipp] Fehler beim Speichern des Alters eines User...
10.09.2008 - [Tipp] Nach Serverumstellung läuft Script nic...
29.08.2008 - [Tutorial] Verbindung zu MySql und Auswahl einer D...
28.08.2008 - [TIPP] PHP code lesbar gestaltet
28.08.2008 - [Tutorial] Arbeiten mit Unix-Zeitstempeln, date(),...
|