Hello,
es gibt unterschiedliche Wege zum Ziel ;-)
Bau mal als erstes eine Seite "login.php", in der dein Login-Formular enthalten ist. Und bemühe dich dabei möglichst, HTML und PHP so gut es geht zu trennen.
Die Zugangsdaten
<?php ### .htlogindata.php ### utf-8 ### ÄÖÜäöü
define('PASSWORD', 'streng Geheim');
?>
Das Login-Formular
<?php ### login.php ### utf-8 ### ÄÖÜäöü
header('Content-Type: text/html; Charset=utf-8');
mb_internal_encoding('UTF-8');
session_start();
## Password-Konstante laden
require_once('.htlogindata.php');
$message = 'Abgemeldet';
if (isset($_POST['btn']['logout']))
{
$_SESSION['logintime'] = false;
}
elseif (isset($_POST['btn']['login']))
{
if (isset($_POST['data']['password']))
{
## eventuell führende und anhängende Whitespaces wegtrimmen...
if (PASSWORD == trim($_POST['data']['password']))
{
### Login-Zeitpunkt in der Session merken
$_SESSION['logintime'] = time();
### Weiterleiten zur geschützten Seite
header('Location: myProtectedSite.php');
exit;
}
else
{
$message = 'Passwort ist falsch. Bitte wiederholen';
### hier Logging einbauen für Fehlversuche
#error_log( ... );
}
}
}
else
{
$message = 'Bitte Passwort eingeben';
}
###############################################################################
# html output
###############################################################################
?>
<html>
<head>
<title>Passworteingabe</title>
</head>
<body>
<p><?php echo htmlspecialchars($message); ?></p>
<form action="login.php" method="post">
<p><input type="password" name="data[password]"></p>
<p><button type="submit" name="btn[login]">Anmelden</button></p>
</form>
</body>
</html>
Die Seite, die nur mit Passwort benutzt werden darf
<?php ### myProtectedSite.php ### utf-8 ### ÄÖÜäöü
header('Content-Type: text/html; Charset=utf-8');
mb_internal_encoding('UTF-8');
session_start();
$time = time();
if (isset($_SESSION['logintime']) && (($time - $_SESSION['logintime']) < 360))
{
$_SESSION['logintime'] = $time; ## Nachtriggern
}
else
{
header('Location: login.php');
exit;
}
###############################################################################
# html output
###############################################################################
?>
<html>
<head>
<title>Meine geheime Seite</title>
</head>
<body>
<h1>Geheime Hinweise</h1>
<h2>Logout:</h2>
<form action="login.php" method="post">
<button type="submit" name="btn[logout]">Wieder Abmelden</button>
</form>
<h2>Geodaten</h2>
<p>Hier steht das nächste Ziel für das Spiel:</p>
<div> Blah Geodaten Blubb </div>
<div> und noch mehr BlahBlah </div>
</body>
<html>
Das ist jetzt ein minimalistisches Beispiel (getestet).
HTML bitte selber hübsch machen mit CSS!
Wenn Du die Möglichkeit dazu hast, sollte die Datei mit dem Passwort außerhalb der Document Root stehen. Dann muss sie aber auch entsprechend referenziert werden...
Liebe Grüße
Tom S.
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.