Also von Anfang an:
Dazu brauchst du 3 Dateien.
Bei dem hier arbeitet man mit Sessionen (kinderspiel).
Als erstes das Loginformular (index.php am besten)
[html]
Login
Passwort:
[/html]
So.. diese ist ja ganz klein. Mehr brauchen wir ja auch nicht.
Nun kommt die login.php, die prüfen soll, ob das Passwort stimmt.
[php]
<?php
// login.php
$Passwort = "hierdeinpasswort";
$Uebernahme = $_POST['passwort']; // Die Übernahme des eingegebenen Passwortes
// Nun die Abfrage:
if($Uebernahme == $Passwort)
{
echo'Das eingegebene Passwort ist richtig';
}
else
{
echo'Das eingegebene Passowrt ist falsch.
';
echo'Bitte gehen Sie
zurück und versuchen Sie es erneut';
// Hier, wenn das Passwort falsch ist, soll ein Zurücklink erscheinen
}
?>
[/php]
Nun das ist eigentlich schon eine Überprüfung.
Nun, wenn es stimmt, soll der ja etwas sehen.
Also starten wir bei login.php eine Session, die immer wieder geprüft wird, und leiten dann unseren Einlogger auf eine andere Datei.
Hier kommt die weiterleitung und die Sessionstartung:
[php]
<?php
// login.php
$Passwort = "hierdeinpasswort";
$Uebernahme = $_POST['passwort']; // Die Übernahme des eingegebenen Passwortes
// Nun die Abfrage:
if($Uebernahme == $Passwort)
{
session_start();
$_SESSION['passwort'] = $Zugangspasswort; // Hier geben wir der Session den Namen passwort
echo'Sie sind erfolgreich eingeloggt!
'; // Und hier wird ein text kurz erscheinen. Dann wird man weitergeleitet.
echo'Sie werden zur Administration weitergeleitet.
';
// Imfalle, dass der Besucher JavaScript deaktiviert hat, wird noch ein Link zum Login angeboten
echo'Falls Sie nicht weitergeleitet werden, klicken Sie
hier';
}
else
{
echo'Das eingegebene Passowrt ist falsch.
';
echo'Bitte gehen Sie
zurück und versuchen Sie es erneut';
// Hier, wenn das Passwort falsch ist, soll ein Zurücklink erscheinen
}
?>[/php]
Zugleich soll man auf dieser Seite prüfen, ob die Session gültig ist. Sonst kann ja jeder die login.php öffnen und dann einfach den Link drucken.
Ausserdem muss (also so denke ich) session_start() vor dem restlichen Code erscheinen. Also machen wir eine ganze HTML Datei raus (mit head, body, etc)
Also müssen wir das Script umschreiben, dass es oben die Session startet, aber noch nicht prüft.
Etwa so:
[php]
<?php
$Zugangspasswort = "deinpasswort";
if($_POST['Login'] && $_POST['passwort'] == $Zugangspasswort)
{
session_start();
$_SESSION['passwort'] = $Zugangspasswort;
}
?>
<?php
if($_SESSION['passwort'] == $Zugangspasswort) // Hier prüft es die obig-registrierte Session.
{
echo"Sie sind erfolgreich eingeloggt!
Sie werden zur Administration weitergeleitet.
";
// Nun eine Rückgabe, für die die JS deaktiviert haben:
echo'Falls Sie nicht automatisch weitergeleitet werden, klicken Sie
hier';
}
else
{
// Und hier die Meldung, wenn es nicht gültig ist
echo 'Sie sind nicht befugt, diese Seite anzusehen
Möglicherweise ist das eingegeben Passwort falsch.
';
echo 'Bitte loggen Sie sich
hier erneut ein.';
}
?>
[/php]
So… Das wäre die Session-Startung und die Prüfung.
Nun gehen wir zur Datei, die geschützt ist.
Wir nennen diese Datei admin.php
Zuerst wird wieder als erstes die Session gestartet.
[php]
<?php
session_start();
?>
[/php]
Das kommt noch vor hin.
Nun kann man, wie gewohnt weitermachen, bis zum Body.
[php]
<?php
session_start();
?>
Geschützter Bereich
[/php]
Nun soll man den Inhalt nur ausgeben, wenn die Session auch gültig ist.
Dazu prüfen wir wieder:
[php]
<?php
session_start();
?>
Geschützter Bereich
<?php
$Zugangspasswort = "deinpasswort wie bei login.php";
if($_SESSION['passwort'] == $Zugangspasswort)
{
echo'Hier ist der geschützte Bereich';
// Hier kann man weitere Dinge eingeben, dass sie geschützt sind.
// Wenn man weitere Dateien dazu braucht, empfielt sich das include, da man sonst bei jeder Datei die Session prüfen muss
}
else
{
echo'Ihre Session ist nicht gültig
Loggen Sie sich
hier erneut ein';
}
?>
[/php]
Und nun, wenn man nicht immer echo's verwenden will, kann man das ganze zwischendruch "unterbrechen".
Etwa so siehts dann aus:
[php]
<?php
session_start();
?>
Geschützter Bereich
<?php
$Zugangspasswort = "deinpasswort wie bei login.php";
if($_SESSION['passwort'] == $Zugangspasswort)
{
?>
Hier ist der geschützte Bereich. Nun kann ich hier HTML verwenden, ohne echo oder sonstiges zu verwenden. (Nachteil: Wenn man auf der geheimen Seite PHP verwendet, ist es besser mit echos zu arbeiten).
<?php
}
else
{
?>
Hier der Error im HTML-Modus.
<?php
}
?>
[/php]
Und nun haben wir ja das ganze komplett.
Mein ihr?
NEIN!
Denn man soll sich auch ausloggen können, das nachher kein Unbefugter darauf zugriff hat.
Also erstellt man noch eine logout.php.
Die sieht so aus:
[php]
<?php
session_start();
if($_SESSION['passwort'] == $Zugangspasswort)
{
session_destroy();
echo'Sie wurden erfolgreich ausgeloggt.';
}
else
{
echo'Sie sind nicht befugt diese Seite zu "betrachten". Loggen Sie sich
hier ein.';
}
?>
[/php]
So, das war mal ein kleines Tutorial.
Ich werde es in die Tutorialkategorie zusätzlich „kopieren“.
TIP:
Anstatt bei admin.php und bei login.php immer das Passwort ändern, wäre es von Vorteil, eine Datei anzulegen, namens config.php.
Da kann man den Code hier einfügen:
[php]
<?php
$passwort = "deinpasswort";
?>
[/php]
Dann müsste man bei admin.php, login.php und bei logout.php den Code abändern.
So etwa:
[php]
<?php
include"config.php"; // config.php wird eingefügt
$Zugangspasswort = $passwort; // $passwort wurde in config.php bestimmt
?>[/php]
MfG, matibaski
WARNUNG: Ich nehme keine Garantie auf Fehler (Code, sowie mein Deutsch), da ich alles schnell aus dem Kopf geschrieben habe.