Codeschnipsel - Erweiterter Passwort Schutz by Jaronski


Dieses Code-Schnipsel, soll Ihnen helfen eine/mehrere Seite(n) Passwort zu schützen. In diesem Codeschnipsel arbeite ich mit Session, die gesetzt werden wenn das Login erfolgreich ist und gelöscht werden, wenn man sich ausloggt, bzw. diese sich nach dem schließen des Browers selber beenden.

 

Kommen wir nun zum Code:

In Dieser Datei spielt sich die Überprüfung der Login-Daten und das Setzen der Session statt:

Code:
<?php session_start(); ob_start(); /* Login with sessions   * @copyright (c) 2006 by Jaron Heskamp   * @license http://www.fsf.org/licensing/licenses/gpl.txt GNU GPL Version 2 * @version 1.1.0. * @link http://blog.webmah.de/ * @contact http://blog.webmah.de */ ?> <style> body { font-family:Verdana; font-size:11px; } a { color: #000; } a:hover { text-decoration:none; } input, textarea { border:1px solid #ccc; font-size:11px; padding:2px; background-color:#fff; margin:1px; font-family:Verdana; } .big { font-weight:bold; } </style> <?php   /////////////////////////////////////// // -START- Configuration /////////////////////////////////////// // Das Standard-Passwort ist hier: "admin" define('password', '21232f297a57a5a743894a0e4a801fc3'); // Password was generate in MD5 /////////////////////////////////////// // -END- Configuration ///////////////////////////////////////   if(!isset($_SESSION['passwordlogin'])) // Hier wird geprüft, ob die Session [passwordlogin] verfügbar ist. { if($_POST['submit']) { if(md5($_POST['pw']) == password) // Hier wird geprüft, ob das Passwort richtig ist. { $_SESSION['passwordlogin'] = true; // Hier wird die Session [passwordlogin] geöffnet. header('Location: '.$_SERVER['PHP_SELF']); // Hier wird man auf die gleiche Datei weitergeleitet, damit man in den Passwort geschützten Bereich kommt } else print '<p style="color:red;font-weight:bold;">Login incorrect!</p>'; // Dies wird ausgegeben, wenn das Login fehlerhaft war. } // Hier fängt das Login-Formular an ?> <form action="" method="post"> <input type="password" name="pw" size="20" value="" maxlength="255"> <input type="submit" name="submit" value="Login"> </form>   <p> <?php // Hier hört das Login-Formular auf } else // Dies wird angezeigt, wenn das Login erfolgreich war { // Die folgenden Zeilen, werden angezeigt, wenn das Login erfolgreich war: print '<p style="text-align:center;"><strong>Navigation:</strong> <a href="?page1">Seite 1</a> | <a href="?page2">Seite 2</a> | <a href="?logout">Logout</a></p>'; print '<p> </p><p> </p>'; if(isset($_GET['page1'])) print 'Diese Seite, können Sie nur sehen, wenn sie eingeloggt sind!'; if(isset($_GET['page2'])) print 'Dies ist eine Seite, die sie auch nur Sehen können, wenn Sie eingeloggt sind!';   if(isset($_GET['logout'])) // Die folgenden Zeilen, sind das Logout. Hier werden alle Session beendet. { session_destroy(); print '<p style="color:green;font-weight:bold;">Ausgeloggt!</p>'; exit(); }   } // Hier wird dieser Bereich wieder geschlossen. ?>

Eine Beschreibung zu den Schritten findet man in der Datei.

 

Natürlich ist es auch möglich nachdem die Session gesetzt wurde eine externe Datei (Muss aber auf dem gleichen Server sein!) zu überprüfen und dann Inhalt auszugeben:

Externe Datei (welche aber auf dem gleichen Server ist) überprüfen:

Code:
<?php session_start(); ob_start(); /* Login with sessions   * @copyright (c) 2006 by Jaron Heskamp   * @license http://www.fsf.org/licensing/licenses/gpl.txt GNU GPL Version 2 * @version 1.1.0. * @link http://blog.webmah.de/ * @contact http://blog.webmah.de */   // So können Sie eine Seite passwortgeschützt, mit meinem Script machen:   if(isset($_SESSION['passwordlogin'])) // Hier wird geprüft, ob die Session [passwordlogin] verfügbar ist. { ?> Diesen Text, können Sie nur sehen wenn Sie eingeloggt sind. <?php } else // Dieser Text wird angezeigt, wenn die Session [passwordlogin] nicht verfügbar ist. { ?> Bitte loggen Sie sich ein! <?php } ?>

Sollten Sie Fragen oder Anregungen haben, wenden Sie sich über das Forum an mich: Jaronski
- Oder wenn es ein Bug, etc. ist einfach einen Theard öffnen.

Viel Spaß mit diesem Code-Schnipesl, wünscht Jaron.

© by Blog.Webmah.de

Beachten Sie: Wir übernehmen keinerlei Haftung für irgendwelche Schäden, Ausfälle oder sonstigen Geschehnissen.
Alle Angaben sind ohne Gewähr, Sie handeln auf eigenes Risiko!
Alle genannten Soft- und Hardwarebezeichnungen sowie Markennamen sind Eigentum ihrer jeweiligen Inhaber und unterliegen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz.
Alle Rechte vorbehalten