PHP 5.4 & MySQL 5.6 Grundkurs

Ein Login-System realisieren

Testen Sie unsere 1931 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wenn Sie nur berechtigten Benutzern den Zugang zu bestimmten Informationen ermöglichen wollen, dann sollten Sie ein Login-System installieren. Dieses Video demonstriert anhand eines praktischen Beispiels, wie's geht.

Transkript

Hier am Bildschirm sehen Sie ein einfaches Login-System, bei dem bestimmte Inhalte nur für Benutzer erreichbar sind, die eben Benutzernamen und Passwort eingegeben haben. Wenn ich jetzt mal versuche, die geschützte Seite hier aufzurufen. Er heißt Willkommen, dann sehen Sie, es passiert überhaupt nichts. Es kommt wieder eine Umleitung zu dieser Startseite. So etwas können Sie mit sessions realisieren, und wie, sehen Sie in diesem Film. Beginnen wir mit dem Anfang. Das heißt, dieser Seite, die Startseite hier. Die beinhaltet erst einmal ein Formular mit den zwei Feldern hier, der Name und das Passwort und außerdem gibt es einen Absende-Button. Hier gibt es eine Überprüfung, ob ein Fehler aufgetreten ist, und sonst kommt die Meldung "Login-Daten nicht korrekt". Darauf kommen wir später noch. Was entscheidend ist, ist, dass in diesem Formular hier, bei action login.php steht. Das heißt, wenn das Formular abgesendet wird, wird die Datei login hier aufgerufen. Schauen wir uns mal an, wie diese login-Datei denn aufgebaut ist. Sie finden sie hier. Ganz entscheidend, hier wird eine Sitzung gestartet. Und es wird geschaut, ob in dem Formular, was per POST versendet wird, der Name gesetzt ist, und ob er den Wert "Hans" hat. Diesem einfachen Beispiel habe ich als Benutzername "Hans" genommen und als Passwort "geheim". Das lässt sich natürlich noch verbessern, soll einfach nur ein einfaches Beispiel erst einmal sein. Also, es soll nur ein Benutzer Zugang haben, wenn er eben den Benutzernamen "Hans" eingibt und das Passwort "geheim". Wenn er das gemacht hat, dann werden diese beiden Werte in der session gespeichert, zum einen der Name, den können wir dann brauchen, um den Benutzer zu begrüßen. Und außerdem speichern wir hierüber die Information login hat funktioniert, es hat den Wert "ok". Und wir geben hier an, auf welche Seite umgeleitet werden soll. Das ist die Seite willkommen.php. Wenn die Überprüfungen nicht klappen, also jemanden nicht den richtigen Benutzernamen und das richtige Passwort eingegeben hat, dann landen wir in diesem else-Zweig, und es findet wieder eine Umleitung auf die Startseite statt. Zusätzlich wird hier auch noch ein Parameter gesetzt. Jetzt habe ich immer gesagt, es findet eine Umleitung statt, aber es ist gar nicht klar, wie die Umleitung gemacht wird. Die kommt nämlich in dieser Zeile hier. header ist eine Funktion, die Ihnen PHP zur Verfügung stellt, und über diese Funktion können Sie header-Informationen setzen und Sie können damit, wenn Sie hier location angeben, eine direkte Umleitung realisieren. In den meisten Browsern würde es genügen, wenn Sie einfach hinschreiben, hier location, start.php oder so etwas ähnliches. Aber eigentlich ist vorgesehen, dass hier immer absolute URLs stehen. Und eine solche absolute URL habe ich hier zusammengebastelt durch diese Bestandteile, die ich hier automatisch auslesen lasse. Das also ist mein Login-Skript. Zusammengefasst kann man sagen, dass dieses Login-Skript entweder zurück zur Startseite führt, wenn Benutzername und Passwort nicht richtig ist, sonst leitet es den Benutzer auf die Willkommen-Seite. Wie die Willkommen-Seite ausschaut, sehen Sie hier. Hier sehen Sie wieder als erstes, diese Sitzung wird gestartet. Dann wird überprüft, ob die richtigen Werte gesetzt sind, ganz wichtig hier, ob die session login auf "ok" ist, weil ich muss natürlich die Seite, die ich schützen möchte, hier auch direkt nochmal eine Überprüfung machen. Sonst könnte ja jemand die URL erraten und direkt draufgehen. Nur wenn das hier richtig und korrekt ist, dann wird der eigentliche Seiteninhalt ausgegeben, hier sehen Sie, das geht bis hierhin, bis zum schließenden Tag von HTML. Wenn die Login-Daten hingegen nicht korrekt sind, dann kommt dieser else-Zweig und es wird die header-Funktion aufgerufen, die Sie eben schon gesehen haben, und darüber findet wieder eine Umleitung statt, auf die Startseite. Auf der Willkommen-Seite selber, gibt es hier eine Begrüßung. Also, da wird der Name, der da eingegeben wird, ausgelesen, also steht dann da "Hallo Hans". Außerdem sehen Sie hier auch noch, dass es hier ein Link gibt auf das Skript logout.php und dieser steht hier. Das Logout-Skript startet erst einmal hier eine session, und dann werden alle session Informationen gelöscht. Das geschieht bisschen nach dem Motto "Doppelt hält besser". Also erst einmal wird das session Array auf ein leeres Array gesetzt, das Cookie wird hier gelöscht, indem Sie den Namen des Cookies nehmen, und dann ein Zeitpunkt in der Vergangenheit, also durch dieses Minus an time angehängt, angeben. Und außerdem wird zusätzlich noch die Sitzung zerstört über session_destroy. Und wenn das alles geschehen ist, erfolgt wieder die Umleitung auf start.php. Schauen wir das Login-Beispiel jetzt nochmal in Funktion an. Eben haben Sie ja schon gesehen, dass ich nicht direkt die Willkommen-Seite aufrufen kann, dass das nicht funktioniert, weil die ja geschützt ist. Jetzt zeige ich einmal was funktioniert, wenn ich richtigen Benutzernamen und richtiges Passwort eingebe. Also, hier Hans und geheim und gehe jetzt auf Login. Firefox fragt mich, ob ich das speichern möchte, das möchte ich hier nicht. Und ich lande auf der Willkommen-Seite. Und kann hier auf Ausloggen klicken. Und komm wieder zur Startseite. Das Skript ist relativ einfach gehalten und lässt sich natürlich an verschiedenen Stellen verbessern. Das, wo man etwas machen könnte ist einmal dieser Punkt, dass das Passwort hier direkt als Klartext drinnen steht. Sowas ist unschön. Falls jemand aus irgendeinem Grund Zugriff auf diese Datei hätte, dann könnte er das Passwort auslesen, sowas ist nicht gut. Es gibt verschiedene Möglichkeiten, Passwörter zu schützen. Eine Funktion hier beispielsweise ist dieses md5, das bewirkt, dass Sie aus einem Klartext-Passwort ein verschlüsseltes Passwort machen. Das sehen Sie hier am Beispiel. Ein Passwort verschlüsseln können Sie beispielsweise über die PHP-Funktion md5. Und diese Verschlüsselung lässt sich nicht umkehren. Das heißt, Sie können nicht irgendwie ein decode machen und kriegen wieder das Klartext-Password, das funktioniert mit diesem md5 nicht. Und wenn Sie so etwas einsetzen wollen, dann müssen Sie einmal sich anschauen das Klartext-Passwort. Was ergibt das, wenn ich da md5 anwende? Dann gewinne ich eben diesen String hier. Und den benutzen Sie, und den speichern Sie in Ihrer Datei. Das wäre auch die richtige Vorgehensweise. Wenn man die Passwörter nicht direkt in einer Datei hat, sondern beispielsweise in einer Datenbank. Den md5 String gewinnen Sie, indem Sie md5 auf ein Passwort anwenden, und das Ergebnis per echo ausgeben lassen. Sie können bei der Sicherheit dann noch einen Schritt weiter gehen, denn auch diese md5-Verschlüsselung ist nicht so ganz sicher, weil es gibt sogenannte rainbow tables, also so etwas wie Regenbogen-Tabellen, wo Klartext-Passwörter mit den entsprechenden md5-Strings abgespeichert sind. Sicherer ist es deswegen ein zusätzliches sold hinzuzufügen. Das heißt, man ergänzt bei einem Passwort einen zusätzlichen String, bevor dieser Algoritmus angewandt wird. Das funktioniert auch in PHP. Da gibt es zum Beispiel hash hammock als Funktion, worüber man das machen kann. Also das sind Möglichkeiten, dieses Beispiel noch zu verbessern. Sie haben hier das Grundprinzip gesehen, wie Sie jetzt hier über sessions ein einfaches Login-System realisieren und dadurch Inhalte nur zugänglich machen, wenn ein Benutzer Benutzernamen und Passwort eingegeben hat. Eine wichtige Komponente dieses Beispiel war es auch, dass Sie gesehen haben, dass man die Funktion header benutzen kann, um eine Umleitung zu realisieren auf eine andere Webseite.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!