Hallo Tom,
der aktuelle Stand:
http://www.e-tn.de/sandbox/cgitest/init.php5
http://www.e-tn.de/sandbox/cgitest/userdata.dat
http://www.e-tn.de/sandbox/cgitest/test.php5
INIT
<?php ### create_userdata.php ###
$_data = array();
$_data['Tom'] = 'Tom';
$_data['Gast'] = 'Gast';
$stream = serialize($_data);
file_put_contents('userdata.dat',$stream);
?>
USERDATE
http://www.e-tn.de/sandbox/cgitest/userdata.dat
TEST
Der Aufruf von http://www.e-tn.de/sandbox/cgitest/test.php5 endet mit der in init definierten Benutzerdaten in "Benutzerdaten erforderlich!"
<?PHP ###auth_mit__CGI.php ###
function authenticate()
{
Header("WWW-authenticate: basic realm="Privater Bereich"");
Header("HTTP/1.0 401 Unauthorized");
#include("wunderbare_leider_nicht_Seite");
echo "Benutzerdaten erforderlich!";
exit;
}
//-------------- Hauptprogramm -----------------------------------
$data = file_get_contents("userdata.dat"); ## liegt z.B. im include_path
if (!$data) die ("Benutzerdatei ist nicht zugänglich");
$_userdata = unserialize($data);
#$_headers = getallheaders();
if (isset($_SERVER['HTTP_CGI_AUTHORIZATION']))
{
#$_auth = explode(' ',$_SERVER['HTTP_CGI_AUTHORIZATION']);
$_auth = preg_split('#\s+#', $_SERVER['HTTP_CGI_AUTHORIZATION']);
$cred = base64_decode(trim($_auth[1]));
$_UN_PW = explode(':', $cred);
}
if (isset($_userdata, $_UN_PW[0], $_UN_PW[1], $_userdata[$_UN_PW[0]])
and ($_UN_PW[1] == $_userdata[$_UN_PW[0]]))
{
## und hier geht es dann weiter mit der Seitenberechnung
#include("wunderbare_Beguessungsseite");
echo "Danke Tom für die Hilfe, es läuft";
}
else
{
authenticate();
}
$_headers = getallheaders();
$headerhtml = htmlspecialchars(print_r($_headers,1));
echo "<pre>\n";
echo $headerhtml;
echo htmlspecialchars("Username: {$_UN_PW[0]} Passwort: {$_UN_PW[1]}\n");
echo "</pre>\n";
Ich habe hier den HTML-Teil abgeschnitten, daher vorstehendes in Kurzform.
?>
CU