Und weiter gehts...
Hallo Julian,
Wenn Du das Ganze nun nicht mit Cookies machen willst, dann kannst Du auch Basic-Authentikation benutzen.
<?PHP
function authenticate()
{
Header("WWW-authenticate: basic realm="Privater Bereich"");
Header("HTTP/1.0 401 Unauthorized");
// hier steht die Fehlerseite, die nach dreimaligem Fehlversuch
// oder bei Abbruch am Client angezeigt wird
echo "Benutzerdaten erforderlich!<br />";
echo "<a href='".$HTTP_SERVER_VARS["PHP_SELF"]."'>zurü</a></br />";
exit;
}
//-------------- Hauptprogramm -----------------------------------
include("../~include/comp001.php");
$id=strtolower($PHP_AUTH_USER);
if ((($CN == $id) and ($PW == $PHP_AUTH_PW)) or ($REMOTE_ADDR == "192.168.101.25"))
{
echo "<br>Ausgabe wird vorbereitet.<br>";
}
else
{
sleep(1); // als Schutz gegen BruteForceAttacks
authenticate();
}
?>
<!-- hier gehts weiter -->
-------------------------------------------------------------------
In der includeteten Datei comp001.php stehen in diesem Beispiel nur zwei Variablen: $CN und $PW.
Die werden mit den durch den Auth-Dialog gelieferten Variablen $HTTP_SERVER_VARS["PHP_AUTH_USER"] und $HTTP_SERVER_VARS["PHP_AUTH_PW"] verglichen.
Die Funktion authenticate() veranlasst den Client, ein Anmeldefenster aufzuklappen, wenn das am Client nicht ausgeschaltet ist. Nach Ausfüllen des Fensters sendet der Client die Daten an das Script zurück, von dem aus er dazu aufgefordert wurde. Der Client zählt dabei mit. Er wiederholt den Vorgang maximal 3 mal. Nach erfolglosen drei Mal oder Abbruch zeigt er die Seite an, die ihm mit der Aufforderung übertragen wurde. Da könnte man dann also auch einen Link einbauen, um zurpck zu kommen. (sieh Beispiel)
Bei Auth werden aber nun nicht automatisch Sessiondaten aus einer Datei wiederhergestellt. Das kann man aber selber besorgen. Mit erfolgreicher Authentikikation holt man sich den Namen der entsprechenden Datei aus der User-Kontrolldatei und lädt die Variablen. Die $HTTP_SESSION_VARS sind ja jetzt lehr, sodass man sie dafür benutzen kann (uns sollte)
Schau Dir mal die Funktionen serialize() und unserialize() an und die Funktion register_shutdown_function(). Du musst Dir eine "shutdown_userfunction" schreiben, die die Variablen sichert. Diese Funktion (eigentlich hier besser Interrupt-Prozedur) meldest Du mit register_shutdown_function() bei php an, wenn due die Varis am Scriptanfang wiederhergestellt hast. Dann werden die Variablen automatisch bei Beenden des Scriptes gesichert.
Die Methode mit Auth funktioniert dann fast genauso, wie die mit session_start().
Viel Erfolg
Liebe Grüße aus http://www.braunschweig.de
Tom
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.