|
Login mit PHP Session programmieren
Sehr oft lese ich von Neulingen die Frage wie man denn einen Login programmiert.
Deshalb wollen wir hier darauf eingehen und uns ein kleines Login Skript basteln,
welches noch nach belieben erweitert werden kann.
Um einen Login zu programmieren, benötigen wir erstmal eine Möglichkeit Daten
speichern zu können. Hierfür hätten wir die MySQL Datenbank, Cookies und Sessions
zur Auswahl. Die Daten werden nur für den Zeitraum benötigt, die der User auf unserer
Homepage surft. Aufgrund dessen müssen wir die Daten nicht permanent speichern und
lassen die MySQL Datenbank aussen vor. Ausserdem müssen die Daten nach jedem Seitenaufruf
wieder zur Verfügung stehen. Mit MySQL müssten wir die IP Adresse als Merkmal mit speichern,
damit wir den Login den Users zuordnen können. Da es aber Anbieter wie AOL gibt, wo die
IP Adresse zur Laufzeit unterschiedlich sein kann, verlassen wir uns nicht darauf. Wir
wählen die Sessions, da sie temporär verfügbar sind, sich automatisch löschen und der
User aus Sicherheitsgründen beim Öffnen eines neuen Browsers sich erneut einloggen muss ;
nicht dass jemand anders am selben Computer eingeloggt ist nur weil er einen Browser
öffnet (cookies).
Als erstes starten wir die Session(); und fragen ab, ob der Surfer
eingeloggt ist:
Datei: index.php
<?php session_start();
$_logindaten = ARRAY("name"=>"admin", "passwort"=>"12345");
if (isset($_POST["loginname"]) && isset($_POST["loginpasswort"])) { if ($_logindaten["name"] == $_POST["loginname"] && $_logindaten["passwort"] == $_POST["loginpasswort"]) { # Userdaten korrekt - User ist eingeloggt # Login merken ! $_SESSION["login"] = 1; } }
if ($_SESSION["login"] != 1) { include("login-formular.html"); exit; }
# User ist eingeloggt ?>
|
In dem Programm haben wir die Session(); gestartet, in einem Array
gespeichert wie der korrekte Login lauten müsste und dann anhand $_SESSION['login']
überprüft, ob der Surfer eingeloggt ist. Ist er nicht eingeloggt, dann wird das
Formular "login-formular.html" angezeigt und aus dem Programm ausgestiegen.
Dazwischen haben wir noch eine Prüfung eingebaut. Mit isset();überprüfen wir, ob die Variablen aus dem Formular gesetzt sind. Ist dies der Fall,
dann versucht der User einen Login und wir müssen die Daten überprüfen. Hierzu
wird das Array mit den Logindaten mit den eingegebenen verglichen. Sind diese
identisch, wird der Login gespeichert.
Datei: login-formular.html
<form method="POST" action="index.php"> <b>Login</b><br> <br> Username: <input name="loginname"><br> Passwort: <input name="loginpasswort" type=password><br> <br> <input type=submit name=submit value="Einloggen"> </form>
|
|