Geschrieben von redcow am 16.05.2005, 17:30

Hallo. Ich möchte euch hier erklären wie man ein relativ einfaches Login system für unbegrenzt viele user mit PHP bauen kann, das ganze ist nicht schwer, man muss nur

ein paar Variablen einstellen!

Features:

- HTTP Authenticate
- Sessions
- Geht auf lima city
- benötigt keine mySQL datenbank!

Benötigt:

- Ein wenig Zeit
- Webhost mit PHP4+ , nehmen wir gleich lima-city.

___________

1. Grundlegende Schritte

Zuerst erstellen wir eine Datei, wir nennen sie mal 'nopermmision.htm', das wird die Datei die angezeigt wird, wenn der Benutzer beim Login auf abbrechen drückt.
Die Datei könnt ihr gestalten wir ihr wollt, z.B. "Zugriff verweigert, login erforderlich!", sehr einfallsreich ^^.

___

Nun erstellen wir wieder eine neue Datei, diesmal nennen wir sie 'access.php', das wird der eigentliche Teil des Systems.

___

Haben wir diese Datei erstellt, kommt die nächste: Wir nennen sie nun 'users.php', in ihr stehen die Benutzernamen und Passwörter drin.

___

Zussammenfassung Punkt 1:

- Datei 'nopermission.htm' erstellen und nach Wünschen gestalten
- Datei 'access.php' erstellen
- Datei 'users.php' erstellen

Das wars jetzt auch schon, nun kommt der nächste Teil...

2. Benutzer Konfigurieren

Wir öffnen jetzt die erstellte Datei 'users.php' und schreiben folgendes hinein:

<?php
$users = array();

$users['1_username'] = 'DEIN_BENUTZERNAME';
$users['1_password'] = 'DEIN_PASSWORT';
?>

Nun haben wir den Benutzer 'DEIN_BENUTZERNAME' erstellt, wenn du später mehrere Benutzer hinzufügen willst musst du immer nur die zwei Zeilen kopieren und

einfügen, wenn du mehrer Benutzer einfügst müsste es dann etwa so aussehen:

<?php

$users = array();

$users['1_username'] = 'furzi';
$users['1_password'] = 'hund';

$users['2_username'] = 'gregor';
$users['2_password'] = 'maus';

$users['3_username'] = 'sissi';
$users['3_password'] = 'handschuh';

?>

Also bei jedem Benutzer die Zahl vorne um 1 erhöhen.

3. Das eigentliche System

Wenn wir Schritt 2 erledigt haben, öffnen wir die Datei 'access.php' und fügen folgenden Text ein:

<?php

// Hier musst du den Namen des Login- Cookies angeben

$session_cookie = 'protected_page';

// Hier gibst du die Sekunden an, die der Benutzer eingeloggt bleiben soll, standard 3600 sekunden = 1 stunde

$cookie_time = 3600;

// Hier kannst du den Namen deiner geschützten Site angeben

$site_name = 'Protected';

// Hier gibst du den Namen des Fehlerfiles wenn der User auf Abbrechen drückt an

$errorfile = 'nopermission.htm';

// Hier gibst du den Namen des Benutzerfiles an

$userfile = 'users.php';

// Ab hier nix mehr verändern

include $userfile;
$session = array();

function login($errorfile,$site_name) {
header("WWW-Authenticate: Basic realm=\"". $site_name ."\"");
header("HTTP/1.0 401 Unauthorized");
include $errorfile;
exit;

}

if (isset($_SERVER['PHP_AUTH_USER'])) {
$session['exists'] = true;
$session['username'] = $_SERVER['PHP_AUTH_USER'];
$session['password'] = $_SERVER['PHP_AUTH_PW'];
}else{
$session['exists'] = false;
login($errorfile,$site_name);

}

$accounts=count($users);
$counter=0;

while ($accounts != $counter) {
if (!empty($users[$counter . '_username']) && $users[$counter . '_username'] == $_SERVER['PHP_AUTH_USER']) {
$user_exists=true;
break;
}else{
$counter++;
$user_exists=false;
}
}

if ($user_exists != true) {
login($errorfile,$site_name);
}

if ($users[$counter . '_password'] != $session['password']) {
login($errorfile,$site_name);
}else{
setcookie ($session_cookie, 'session_exists', time()+$cookie_time,'/',$_SERVER['HTTP_HOST']);
$login_correct=true;
}

if (!isset($_COOKIE[$session_cookie]) && $login_correct == true) {
login($errorfile,$site_name);
}

?>

Nun musst du nur noch die Kommentierten Variablen nach deinen Wünschen verändern (oder auch nicht ^^) und fast ist alles fertig!

4. Schützen der Dateien

Um nun deine Dateien zu schützen müssen sie die endung '.php' haben.

Nun fügst du ganz oben, vor dem Inhalt diesen Code ein:

<?php
include 'access.php';
?>

Jetzt müsste das ganze so aussehen:

<?php
include 'access.php';
?>

<html>
<head>
<title>Geschützte Site</title>
</head>
<body>
TEXTTEXTTEXT
</body>
</html>

Das wars auch schon, hoffentlich bringt euch das Tutorial was!

greetz, redcow

Für weitere Fragen mailt mir bitte:

bravsein@gmx.at
mailclient@gmx.net

Bewertung Anzahl
6
100,0 %
21 Bewertungen