Diese Funktionen melden einen Benutzer an, basierend auf der Übereinstimmung eines Benutzernamens und Passworts in einer MySQL-Datenbank.
// function to escape data and strip tags
function safestrip($string){
$string = strip_tags($string);
$string = mysql_real_escape_string($string);
return $string;
}
//function to show any messages
function messages() {
$message = '';
if($_SESSION['success'] != '') {
$message = '<span class="success" id="message">'.$_SESSION['success'].'</span>';
$_SESSION['success'] = '';
}
if($_SESSION['error'] != '') {
$message = '<span class="error" id="message">'.$_SESSION['error'].'</span>';
$_SESSION['error'] = '';
}
return $message;
}
// log user in function
function login($username, $password){
//call safestrip function
$user = safestrip($username);
$pass = safestrip($password);
//convert password to md5
$pass = md5($pass);
// check if the user id and password combination exist in database
$sql = mysql_query("SELECT * FROM table WHERE username = '$user' AND password = '$pass'")or die(mysql_error());
//if match is equal to 1 there is a match
if (mysql_num_rows($sql) == 1) {
//set session
$_SESSION['authorized'] = true;
// reload the page
$_SESSION['success'] = 'Login Successful';
header('Location: ./index.php');
exit;
} else {
// login failed save error to a session
$_SESSION['error'] = 'Sorry, wrong username or password';
}
}
Verwendung
Werte würden aus einem Formular übernommen und dann an die Hauptfunktion übergeben werden
login($username, $password);
Alle beteiligten Seiten hätten irgendwo die Nachrichtenfunktion, damit ordnungsgemäßes Benutzerfeedback gegeben wird
messages();
// Funktion zum Anmelden des Benutzers
function login($username, $password){
// Aufruf der safestrip-Funktion
$user = safestrip($user);
$pass = safestrip($pass);
Zuerst verwenden Sie die vollständigen Variablen $username und $password, dann verwenden Sie deren Kurzversion... das funktioniert so nicht
Danke, behoben.
Danke Chris,
Ich finde Ihre Website sehr informativ und lerne viel Gutes von Ihnen.
Hallo Chris
Liebe die Seite – eine schnelle Frage zu diesem Schnipsel.
Ich hatte einige Probleme damit, die SQL-Abfrage würde meinen Benutzernamen und/oder mein Passwort nicht abrufen, bis ich ...
// Passwort in MD5 umwandeln$pass = md5($pass);
unter dem Abfrage-Schnipsel
Ich bin neu in der MD5-Funktion und bin mir nicht sicher, ob das, was ich getan habe, korrekt ist, aber es ist die einzige Möglichkeit, wie es anscheinend richtig funktioniert.
Das bedeutet nur, dass Ihre Passwörter in Ihrer Datenbank nicht gehasht sind.
MD5 gibt Ihrem Textstring einen irreversiblen 32-stelligen Hash-Code.
Beispiel
md5('hi')
würde ergeben
49f68a5c8493ec2c0bf489821c21fc3b
Es ist sehr nützlich, wenn jemand in Ihre Datenbank eindringt, da er die Passwörter aller Benutzer nicht kennt.
@Dyllon
Rainbow Tables – MD5 gilt als eine der schlimmsten aktuell verwendeten Verschlüsselungsmethoden.
Ich würde crypt() empfehlen
Hier ist eine Funktion, die ich seit Jahren benutze (und niemand sonst ist auch nur annähernd in der Lage, sie zu knacken!)
Ändern Sie "aZXCeqsdGEADfubAFSDBUIegdvbuiEG8432" in das, was Sie möchten – solange es sich **NICHT** dynamisch ändert (z. B. durch die Verwendung von Zufallsfunktionen zur Erzeugung eines Strings), muss es gleich bleiben ;)
Wenn Sie die Sitzungen nicht mit session_start() initialisieren, werden Ihre Sitzungsvariablen immer mit der falschen Option übergeben...
Hallo, ich war neugierig, wenn ich dies verwenden würde, müsste ich es auf jeder Seite einfügen, auf der eine Anmeldung erforderlich ist?
Wie erstelle ich mehrere Seiten, von denen aus man sich anmelden muss?
Bitte senden Sie mir Ihre Antwort per E-Mail. Danke.
Hallo zusammen,
Ich suche auch nach demselben. Warum könnt ihr nicht einen Code für vollständige Login-Module erstellen und hier posten? So dass die meisten Leute ihn verwenden können.
Warte auf Antwort. Zumindest per E-Mail.
Vielen Dank,
Sankar.
Hallo Chris,
Kann ich diese Login-Funktion auch in WordPress verwenden?
Welche Modifikationen sollte ich verwenden, falls erforderlich?
Gibt es ein Video oder einen Artikel über Endbenutzer-Login, Registrierung mit WordPress?
Grüße
Andy
Ich würde von der Verwendung von MD5-Hashes abraten, da diese nicht mehr als sicher gelten.
Dies wurde vor langer Zeit veröffentlicht und sollte entfernt werden. Es gibt viele Probleme hier. Die SessionID wird nicht vor JavaScript versteckt, die Sitzung wird nicht neu generiert und zerstört, mysql_real_escape_string ist nicht sicher, MD5 ist entschlüsselbar und das Passwort ist nicht gesalzen. Wenn Sie nach einem ziemlich sicheren Login-Skript suchen, lassen Sie es mich wissen. Ich werde gerne das Bewusstsein dafür schärfen.
Ich frage mich nur, wo ich diesen Code einfügen soll? oder wie soll ich das speichern?
MD5 ist gut, aber der Hash ripemd128 ist so viel besser.
hash('ripemd128', $pass);
Dieser Code ist veraltet und unsicher. Er sollte sofort entfernt werden.
Niemand sollte diesen Code verwenden!