Okay, ich erklären werde, wie das Grundkonzept geht und eine sehr einfache Implementierung Dinge in Gang bringen.
PHP (und die meisten Webanwendungen) sind auf REST-konforme Dienste angewiesen - was zu unserer Zeit bedeutet, dass jede Anfrage nicht remote an irgendeine andere Anfrage gebunden ist - entweder vom selben Benutzer oder von anderen.
Was bedeutet das?
Dies bedeutet, dass Sie für jede einzelne Anfrage Ihre Prüfungen durchführen müssen. Sie müssen sicherstellen, dass der Benutzer berechtigt ist, diese Seite auszuführen, oder weniger streng, sogar den Inhalt sehen.
Wie wird das erreicht?
Auf viele Arten, tatsächlich. Es gibt viele Techniken, die verwendet werden, um die Autorisierung für Webanwendungen durchzusetzen, aber sie würden im Wesentlichen beide auf einen von zweien herunterbrechen - entweder zentralisiert oder dezentralisiert.
- Zentralisierte
Das bedeutet, alle Aktionen (und Controller) über eine einzige Datei behandelt werden. Sagen Sie index.php. Diese Datei würde dann ihre Aufgaben basierend auf Anforderungsparametern in andere Dateien aufnehmen oder delegieren (die nicht über normale Anforderungen alleine ausführbar sind). Dies ist ein sehr beliebter Ansatz, aber nicht gerade geradlinig für neue Entwickler. Beispiele für Anwendungen, die diesen Ansatz verwenden, hätten URLs vom Typ: index.php? Do = register, index.php? Do = login, index.php? Do = showtopic & topic_id = 2 und so weiter.
wäre eine einfache Implementierung dieser Technik gehen wie:
<?php
// index.php
define('RUNNING_APP', true);
// 1. place your auth code here, or...
switch ($_REQUEST['do']) {
case 'register':
// 2. or here
include 'inc/register.php';
break;
case 'do_register':
// 2. and here, and before every include.. and so forth.
include 'inc/do_register.php';
break;
}
?>
<?php
// inc/register.php
defined('RUNNING_APP') or die('Cannot access this script directly'); // make sure to break direct access
?>
<form action="index.php?do=do_register">
<!-- form elements -->
</form>
und so weiter.
Ich habe dokumentiert, wo der übliche Auth-Code gehen sollte.
- Dezentrale
Mit diesem Ansatz sollte jedoch Ihr Auth-Code am Anfang jeder einzelnen Datei gehen. URLs von Anwendungen dieser Art sehen normalerweise wie folgt aus: register.php, login.php und so weiter. Das Hauptproblem hier ist, dass Sie alle Auth-Logik pro Datei durchführen müssen, wie oben erwähnt, und das kann ein hektischer Job sein, wenn Ihre Dateien in Menge zunehmen. Eine praktische Lösung besteht darin, diese Logik in einer einzigen Datei zu speichern und diese Datei (die die Anforderung für unauthor personel beenden würde) vor jeder Ihrer Logik einzubeziehen. Ein einfaches Beispiel wäre:
<?php
// index.php
include('inc/auth.php');
// index logic
?>
<?php
// register.php
include 'inc/auth.php';
// register logic
?>
<?php
// inc/auth.php
$logged_in = false;
if (!$logged_in) {
die ('You do not have permission to access this page. Please login');
}
?>
ist dies die tutoral ive bisher folgende, und ich glaube nicht, seine Arbeits http://www.phpeasystep.com/phptu/6.html – Crash893
Vielleicht falsch verstanden I Die Frage, brauchen Sie ein vollständiges Benutzer-Login-System (zB müssen verschiedene Benutzer verschiedene Dinge sehen) oder möchten Sie nicht, dass jeder Ihre Website sehen kann? Meiner Meinung nach ist .htaccess der richtige Weg. – williamg
Ich möchte an den Punkt kommen, wo ich Benutzer und Admins und Power User haben kann – Crash893