Funjoy
25.12.2005, 17:34:10
Hallo,
Ich habe da eine Frage: Kann man die Authentifizierung für $_SERVER['PHP_AUTH_USER'] auch für einen ganzen Ordner vornhemen via PHP oder primär mit der Header()-Funktion? Weil wenn ich den Wert für $_SERVER['PHP_AUTH_USER'] in meiner login.php-Datei setze, dann ist $_SERVER['PHP_AUTH_USER'] nur für die Datei login.php authentifiziert. Also mein Login-Script werde ich mal offen darlegen, vieleicht weiß ja dann einer Bescheid.
Login Formular (HTML):<form action="login.php?pfad=anmelden{$session}" method="post" name="login">
<fieldset>
<legend>Login</legend>
» Benutzername<br />
<input type="text" class="forms" name="benutzername" size="15">
<br />
» Passwort
<br />
<input type="password" class="forms" name="passwort" size="15">
<br />
<input type="checkbox" name="cookie"> <small style="font-size:8px;cursor:help;" title="Für diese Funktion müssen Coockies akzeptiert werden!">Automatisch Anmelden</small>
<br />
<br />
<div align="right"><input type="submit" class="forms" value="Login"></div>
<br />
» <a href="login.php?target=forget{$session}">Passwort vergessen?</a>
<br />
» <a href="login.php?pfad=registrieren{$session}">Regestrieren</a>
</fieldset>
</form>
PHP Datei login.php:<?php
...
if(isset($db_benutzerdaten->userid)) {
//> Wenn Überprüfen erfolgreich war User in die Useronline liste aufnehmen.
$db->sql_normal_query("INSERT INTO ".$mysql['prefix']."loginsession
(benutzerid,online_seit,zuletzt_aktiv)
VALUES
('".$db_benutzerdaten->userid."',NOW(),NOW())");
//> Gast Authorisieren.
$_SERVER['PHP_AUTH_USER'] = $db_benutzerdaten->userid;
$_SESSION['login'] = TRUE;
$db->free_result();
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=1".$session);
die();
} else {
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=2".$session);
die();
}
} else {
//> Ohne Cookie (Autologin)
$db_benutzerdaten = $db->sql_object_excute("SELECT
userid,mitgliederid,username,passwort,email,aktiviert,rechte
FROM
".$mysql['prefix']."user
WHERE
username='".strtolower($_POST['benutzername'])."'
AND
passwort='".md5($_POST['passwort'])."'
AND
aktiviert='1'");
if(isset($db_benutzerdaten->userid)) {
//> Wenn Überprüfen erfolgreich war User in die Useronline liste aufnehmen.
$db->sql_normal_query("INSERT INTO ".$mysql['prefix']."loginsession
(benutzerid,online_seit,zuletzt_aktiv)
VALUES
('".$db_benutzerdaten->userid."',NOW(),NOW())");
//> Gast Authorisieren!
$_SERVER['PHP_AUTH_USER'] = $db_benutzerdaten->userid;
$_SESSION['login'] = TRUE;
$db->free_result();
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=1".$session);
die();
} else {
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=2".$session);
die();
}
}
}
...
?>
Meine Frage ist also: Wie kann ich die Variable $_SERVER['PHP_AUTH_USER'] für ein ganzen Ordner authentifizieren?
MfG Funjoy
Ich habe da eine Frage: Kann man die Authentifizierung für $_SERVER['PHP_AUTH_USER'] auch für einen ganzen Ordner vornhemen via PHP oder primär mit der Header()-Funktion? Weil wenn ich den Wert für $_SERVER['PHP_AUTH_USER'] in meiner login.php-Datei setze, dann ist $_SERVER['PHP_AUTH_USER'] nur für die Datei login.php authentifiziert. Also mein Login-Script werde ich mal offen darlegen, vieleicht weiß ja dann einer Bescheid.
Login Formular (HTML):<form action="login.php?pfad=anmelden{$session}" method="post" name="login">
<fieldset>
<legend>Login</legend>
» Benutzername<br />
<input type="text" class="forms" name="benutzername" size="15">
<br />
» Passwort
<br />
<input type="password" class="forms" name="passwort" size="15">
<br />
<input type="checkbox" name="cookie"> <small style="font-size:8px;cursor:help;" title="Für diese Funktion müssen Coockies akzeptiert werden!">Automatisch Anmelden</small>
<br />
<br />
<div align="right"><input type="submit" class="forms" value="Login"></div>
<br />
» <a href="login.php?target=forget{$session}">Passwort vergessen?</a>
<br />
» <a href="login.php?pfad=registrieren{$session}">Regestrieren</a>
</fieldset>
</form>
PHP Datei login.php:<?php
...
if(isset($db_benutzerdaten->userid)) {
//> Wenn Überprüfen erfolgreich war User in die Useronline liste aufnehmen.
$db->sql_normal_query("INSERT INTO ".$mysql['prefix']."loginsession
(benutzerid,online_seit,zuletzt_aktiv)
VALUES
('".$db_benutzerdaten->userid."',NOW(),NOW())");
//> Gast Authorisieren.
$_SERVER['PHP_AUTH_USER'] = $db_benutzerdaten->userid;
$_SESSION['login'] = TRUE;
$db->free_result();
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=1".$session);
die();
} else {
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=2".$session);
die();
}
} else {
//> Ohne Cookie (Autologin)
$db_benutzerdaten = $db->sql_object_excute("SELECT
userid,mitgliederid,username,passwort,email,aktiviert,rechte
FROM
".$mysql['prefix']."user
WHERE
username='".strtolower($_POST['benutzername'])."'
AND
passwort='".md5($_POST['passwort'])."'
AND
aktiviert='1'");
if(isset($db_benutzerdaten->userid)) {
//> Wenn Überprüfen erfolgreich war User in die Useronline liste aufnehmen.
$db->sql_normal_query("INSERT INTO ".$mysql['prefix']."loginsession
(benutzerid,online_seit,zuletzt_aktiv)
VALUES
('".$db_benutzerdaten->userid."',NOW(),NOW())");
//> Gast Authorisieren!
$_SERVER['PHP_AUTH_USER'] = $db_benutzerdaten->userid;
$_SESSION['login'] = TRUE;
$db->free_result();
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=1".$session);
die();
} else {
//> User Weiterleiten
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/nachricht.php?item=2".$session);
die();
}
}
}
...
?>
Meine Frage ist also: Wie kann ich die Variable $_SERVER['PHP_AUTH_USER'] für ein ganzen Ordner authentifizieren?
MfG Funjoy