Hello,
Da hab ich dann aber schon wieder ein Problem, wenn ich den REMOTE_USER verwende, dann ist es schon zu spät, um noch zu überprüfen, ob der User Zugangsberechtigung hat, denn dann ist der User über htaccess schon registriert und soweit ich weiß, gibt es keine Möglichkeit, die Variablen wieder zu löschen.
Kleines Script für Dich.
Die userdata.dat sollte im include_path (siehe php.ini) AUSSERHALB der Doc-Root liegen.
Format könnte sein:
$_userdata = array();
$_userdata[$loginname] = array("loginname"=>"$loginname",
"pw" =>"$password",
"fullname" =>"$fullname");
"pages" =>array("1,15,22,77));
Für das Anlegen eines Users brauchst du dann eine Funktion, die diese Daten da einfach hinzufügt in das große Array und es wiedr serialisiert und abspeichert. Da ist dann eine "Datenbanktabelle für Arme".
Scriptbeispiel
<?PHP
function authenticate()
{
Header("WWW-authenticate: basic realm="Privater Bereich"");
Header("HTTP/1.0 401 Unauthorized");
echo "Benutzerdaten erforderlich!";
exit;
}
//-------------- Hauptprogramm -----------------------------------
$data = file_get_contents("userdata.dat"); ## liegt im include_path
if (!$data) die ("Benutzerdatei ist nicht zugänglich");
$_userdata = unserialize($data);
Dateidaten wieder freigeben, damit der Speicher wieder zur
Verfügung steht
unset($data);
Wenn Userdaten gesendet werden und diese auch passen
if(isset($_userdata[$_SERVER["PHP_AUTH_USER"])
and ($_SERVER["PHP_AUTH_PW"]==$_userdata[$_SERVER["PHP_AUTH_USER"]["pw"]))
{
## Teilarray des Users rausschneiden
$_user=$_userdata[$_SERVER["PHP_AUTH_USER"]);
## und auch das Userdatenarray wieder freigeben
unset($_userdata);
## und hier geht es dann weiter mit der Seitenberechnung
include("wunderbare_Beguessungsseite");
## usw
}
else
{
sleep(1); // als kleiner Schutz gegen BruteForceAttacks
authenticate();
exit; // doppelt hält besser;
}
####################################################################
?>
<!-- hier gehts weiter mit HTML-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
<html>
<head>
<title><?php echo "Interner Bereich von ".$_user["fullname"]; ?></title>
<META NAME="Author" CONTENT="?">
<META NAME="Keywords" CONTENT="?">
<META NAME="Description" CONTENT="?">
</head>
<body>
<!-- Inhalt der Datei -->
</body>
</html>
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen