PHP - Login mit AJAX
Aus Wikizone
Beispiel (Quelle: http://www.testx.ch/2009/05/einfaches-php-login/ Zugriff 10/2012 )
Einfaches PHP Login{14}
Hallo
Ich möchte euch zeigen, wie man mit PHP ein simples Loginscript mit MySQL erstellt. Ich setze voraus, dass ihr ein bisschen PHP und HTML könnt, da es sich sonst sehr in die Länge ziehen würde.
Ausserdem übernehme ich keine Garantie und keine Haftung für die Scripte und ihre Sicherheit sowie Funktionsfähigkeit.
Unser Script wird sich in folgende Dateien aufteilen:
login.php
loginform.php
checker.php
connect.php
config.php
Fangen wir mit der login.php an. Sie soll die Daten von der loginform.php empfangen und überprüfen. Es empfängt die Daten, verbindet sich zur Datenbank, überprüft den Code auf Schadcode und vergleicht die Werte. Wenn sie ok sind, registriert es die Session.
login.php
<?php
include('connect.php');
$username=$_POST['username'];
$password=$_POST['password'];
$query=mysql_query("SELECT username, password FROM users WHERE username ='".$username."'") or die("konnte nicht selecten!!!");
mysql_real_escape_string($username);
mysql_real_escape_string($password);
$result=mysql_fetch_array($query);
if(!$result['username']){
echo "Username oder Passwort falsch!";
header('location:loginform.php');
die();
}
if($password != $result['password']){
echo "Username oder Passwort falsch!";
header('location:loginform.php');
die();
}
session_register('username');
echo "Du bist erfolgreich registriert!";
?>
Die loginform.php soll die Daten vom User entgegennehmen, also dort, wo man die Daten eingibt.
loginform.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Einfaches Loginscript -Tutorial</title>
</head>
<body>
Deine Benutzerdaten:<br>
<form action="login.php" method="post" >
Benutzername:
<input name="username" type="text" size="35"><br>
Passwort:
<input name="password" type="password" size="35"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
Der checker.php soll auf jeder Seite überprüfen, ob der User bereits eingelogt ist. Wenn nicht, soll er ihn zum Login weiterleiten.
checker.php
<?php
session_start();
if(!session_is_registered('username')){
echo "Du hast keinen Zutritt!";
header('location:loginform.php');
die();
}
?>
Die connect.php soll die Verbindung zur Datenbank vereinfachen, in dem sie die Funktion in eine Datei vereint, die jedes Script includen kann ohne den Befehl dauernd wiederholen zu müssen.
connect.php
<?php
include('config.php');
mysql_connect("$dbhost", "$dbuser", "$dbpassword") OR die("Konnte keine Verbindung aufbauen.");
mysql_select_db("$dbdatenbank") OR die("Konnte keine Verbindung aufbauen.");
?>
Die config.php speichert alle Daten zur Datenbank verbindung ab.
config.php
<?php
$dbhost="localhost";
$dbuser="user";
$dbpassword="passwort";
$dbdatenbank="Datenbankname";
?>
Nun muss man in der config.php die Daten der MySQL Datenbank angeben. Dann kann man in der Datenbank eine neue Tabelle mit dem Namen users erstellen. In diese gibt man drei Felder ein: id, username und password. Die id stellt man auf Primary Key und auf Auto Increment.
Nun kann man zwei Werte eintragen und sich im loginform.php anmelden. Auf jede zu schützende Seite bindet man als erstes die checker.php ein.
Wenn man das Script ernsthaft verwenden will, muss man unbedingt noch mit einer Verschlüsselung der Daten arbeiten.
Falls es Probleme mit den Scripts gibt oder wenn ihr einen Fehler entdeckt, bitte ich euch einen Kommentar zu schreiben.