Ich möchte einen Passwortschutz mittels PHP realisieren, welcher am Anfang jeder Seite included wird.
Der Passwortschutz überprüft ob eine Session besteht. Wenn nicht wird eine Loginmaske angezeigt und nachher der PHP Befehl exit ausgeführt welcher das weiter Aussführen PHP unterbricht. und nach der Eingabe der Userdaten wird überpfrüft ob die Logindaten mit den gespeicherten Daten aus dem config File übereinstimmen (Passwort evtl. md5 verschlüsselt).
mein Frage nun. Ist das ganze sicher, wenn die security.php zuoberst in jeder Datei eingebunden wird und am ende der Loginmaske mit exit das ganze Script gestoppt wird??
Also ich hab sowas auch gemacht. Ich speichere das passwort und den name als cookie(das passwort natürlich md5) und include das login.inc.php einfach.
login.inc.php
<?php
$username = $_COOKIE['username'];
$password = $_COOKIE['password'];
if(!empty($_POST['username']))
$username = $_POST['username']; //formular-wert überschreibt cookie
if(!empty($_POST['password']))
$password = md5($_POST['password']);
//testen, ob $password zu $username passt (z.b. datenbank)
$logged = $password == $wie_es_sein_sollte; // (beides ist md5-verschlüsselt)
if($logged)
{
setcookie('username', $username);
setcookie('password', $password, 300); //verfällt nach 5 minuten
if(!empty($_POST['password']))
echo '<script type="text/javascript">window.alert("Sie wurden angemeldet")</script>';
//nur wenn per formular angemeldet, nicht bei cookie; d.h. nur beim ersten mal
}
else
{
?>
<!--doctype, html, head, title, body und so-->
<form method="post" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
Name: <input name="username" value="<?php echo $username ?>"><br>
Passwort: <input type="password" name="password"><br>
<input type="submit" value="Anmelden">
</form>
<?php
exit()
}
?>
Kannst ja mal ausprobieren...
Gruß, Marian