So Autorisieren Sie

Inhaltsverzeichnis:

So Autorisieren Sie
So Autorisieren Sie

Video: So Autorisieren Sie

Video: So Autorisieren Sie
Video: AMPEL-CHECK #1: Wie passen SPD, Grüne & FDP zusammen? Nina Stahr (Grüne) & Sebastian Roloff (SPD) 2024, Kann
Anonim

Es kommt oft vor, dass es notwendig ist, Besucher in wünschenswerte und unerwünschte zu unterteilen und die Möglichkeit zu geben, einige Seiten der Website nur für diejenigen zu sehen, die einen Benutzernamen und ein Passwort haben. Wie geht das zum Beispiel in der serverseitigen Skriptsprache PHP?

Wie autorisiere ich?
Wie autorisiere ich?

Anleitung

Schritt 1

Lassen Sie uns den einfachsten Weg organisieren, um Ihre Seiten vor unbefugten Besuchern zu schützen. Der Informationsträger darüber, ob der Besucher berechtigt ist, ist die Sitzung. Eine Sitzung ist ein Analogon zu Cookies in einem Browser, mit dem einzigen Unterschied, dass sie nicht auf unserem Computer, sondern auf dem Server erstellt werden. Und sie werden für denselben Zweck wie Cookies verwendet – um verschiedene Informationen über uns zu speichern, während wir von Seite zu Seite einer Website wechseln. Wenn wir den Browser schließen, zerstört der Server diese Sitzung und erstellt beim nächsten Anmelden eine neue. Wir verwenden diesen Servermechanismus, um zu erfassen, ob der Benutzer bereits in die Sitzung eingeloggt ist oder nicht. Wenn ein Besucher diese Informationen liest und eine Seite anfordert, öffnet das PHP-Skript entweder den Zugang zu passwortgeschützten Seiten oder bietet an, einen Benutzernamen und ein Passwort einzugeben.

Schritt 1: Erstellen Sie eine Seite zur Eingabe von Login und Passwort. Der HTML-Code des Autorisierungsformulars kann in seiner einfachsten Form so aussehen:

Anmeldung:

Passwort:

Hier (ganz am Anfang der Datei) fügen wir einen PHP-Code hinzu, der die Richtigkeit des vom Besucher eingegebenen Benutzernamens und Passworts überprüft. Am Anfang schreiben wir:

session_start();

Dieser Befehl startet eine neue Sitzung, falls noch keine für diesen Besucher erstellt wurde.

Dann prüfen wir, ob die Sitzung eine Variable namens 'userName' hat - sie speichert den Namen, wenn der Besucher bereits eingeloggt ist. Wenn es eine solche Variable gibt, leiten Sie den Besucher auf die Hauptseite (index.php) um und beenden Sie die Ausführung dieses PHP-Skripts:

if ($ _ SESSION ['Benutzername']) {

Header ("Speicherort: index.php");

Ausfahrt;

}

Der Rest des Codes wird nur ausgeführt, wenn der Benutzer noch nicht den richtigen Benutzernamen und das richtige Passwort eingegeben hat. Geben wir an, welches Login und Passwort als korrekt angesehen werden sollte:

$ validName = 'Ich gehöre mir!';

$ validPass = 'geheimes Passwort';

Dann prüfen wir, ob die aus dem Formular übermittelten Werte mit den richtigen übereinstimmen. Da wir die POST-Datenübertragungsmethode im Formular angegeben haben, sollten sie aus der superglobalen Variablen $_POST gelesen werden:

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['Benutzername'] = $ gültigerName;

Header ("Speicherort: index.php");

Ausfahrt;

}

Hier wird der Code in geschweiften Klammern {} mit den richtigen Werten von Benutzername und Passwort ausgeführt. In der Zeile $ _SESSION ['userName'] = $ validName; ma schreiben wir in der Session eine Variable namens 'userName', die das Login des nun autorisierten Benutzers enthält. Dies wird das Zeichen sein, dass ihm der Zugang überall offen steht, solange seine aktuelle Sitzung gültig ist.

Und falls falsche Daten in das Formular eingegeben werden, fügen Sie die entsprechende Nachricht hinzu:

sonst Echo"

Login oder Passwort ist falsch!

;

Der gesamte Code, der in einer Datei namens login.php gespeichert werden muss, sieht so aus:

<?php

session_start();

if ($ _ SESSION ['Benutzername']) {

Header ("Speicherort: index.php");

Ausfahrt;

}

$ validName = 'Ich gehöre mir!';

$ validPass = 'geheimes Passwort';

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['Benutzername'] = $ gültigerName;

Header ("Speicherort: index.php");

Ausfahrt;

}

sonst Echo"

Login oder Passwort ist falsch!

;

?>

Anmeldung:

Passwort:

Schritt 2

Schritt 2: Erstellen Sie einen Autorisierungsblock - eine separate Datei, die mit jeder Seite verbunden wird, die einen Passwortschutz benötigt. Diese Datei enthält nur php-Code, daher wird ihre Erweiterung "php" sein, und wir geben ihr einen traditionellen Namen für solche Dateien - "auth", dh "auth.php". Und auch hier sollte direkt nach dem öffnenden <?php-Tag eine Anweisung zum Starten einer Session stehen:

session_start();

Wir können alle Variablen, die in der Sitzung gespeichert sind, aus dem superglobalen Array $_SESSION lesen. Wir müssen den Wert der Variablen "userName" überprüfen - wenn sich der Besucher noch nicht eingeloggt hat, wird er nicht im Array sein und wir leiten ihn auf die Seite um, auf der er seinen Benutzernamen und sein Passwort eingibt:

if (! $ _ SESSION ['autorisiert']) {

Header ("Speicherort: login.php");

Ausfahrt;

}

Der gesamte Code, der in der Datei auth.php gespeichert werden muss, sieht so aus:

<?php

session_start();

if (! $ _ SESSION ['admin']) {

header ("Speicherort: enter.php");

Ausfahrt;

}

?>

Schritt 3

Schritt 3: Nachdem wir diese Dateien auf dem Server gespeichert haben, bleiben sie auf allen PHP-Seiten, die vor unbefugten Benutzern geschützt werden müssen, um den Autorisierungsblock zu verbinden. Das heißt, ganz am Anfang jeder PHP-Datei müssen Sie diesen Code einfügen:

<?php

erfordern "auth.php";

?>

Und um das Zugangspasswort zu ändern, müssen Sie die Werte dieser Variablen in der Datei login.php ändern:

$ validName = 'Ich gehöre mir!';

$ validPass = 'geheimes Passwort';

$ validName - Login, $ validPass - Passwort.

Empfohlen: