Nevíte někdo jak je to s Authentifikací při register_globals=off, proměnné $PHP_AUTH_USER a $PHP_AUTH_PW stále platí?
Velice stručná odpověď. Když ne, tak co tam má být? Prosil bych to trochu rozvést. Díky Radek
nejsem si jist, ale co třeba:
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
PHP porad jeste neumi Digest autentizaci.
Z toho nejsem moc moudrej, zkoušel jsem $_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW'], ale pořád se nejde přihlásit.
Spis ukaz kod, chyba se opravi...
if (!IsSet($_SERVER[PHP_AUTH_USER]))
{
Header("HTTP/1.0 401 Unauthorized");
Header("WWW-Authenticate: Basic realm=\"admin center\"");
echo "Neautorizovaný pøístup";
exit;
}
else
{
include "../const.php";
@$sql = mysql_query("SELECT * FROM hesla
WHERE jmen= '$_SERVER[PHP_AUTH_USER]'
AND hesla = '$_SERVER[PHP_AUTH_PW]'");
if (mysql_num_rows($sql) == 0)
{
Header("HTTP/1.0 401 Unauthorized");
Header("WWW-Authenticate: Basic realm=\"admin center\"");
echo "Neautorizovaný pøístup";
mysql_close($conn);
exit;
}
}
já teda používám něco jinýho, ale na první pohled to vypadá stejně:
<?
Header("Pragma: No-cache");
Header("Cache-Control: no-cache");
Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
if($logout)
{
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
}
// není li provedena autorizace, vyžádáme si ji
if (!IsSet($PHP_AUTH_USER))
{
Header("HTTP/1.0 401 Unauthorized");
Header("WWW-Authenticate: Basic realm=\"RS - Admin Center\"");
echo "Neautorizovaný přístup";
echo "<BR><A HREF=\"../index.php\">Zpět do enduser prostředí</A>";
exit;
}
// pokud uživatel vyplnil formulář pokračujeme ověřením dat v databázi
else
{
// připojíme se k databázi
include "../conn.php";
// hledáme záznam s loginem a heslem zadaným v autorizačním
// formuláři. Hledáme jen aktivní uživatele.
@$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '$PHP_AUTH_USER' AND pass ='$PHP_AUTH_PW' AND stav ='a'");
// pokud žádného takového uživatele nenajdeme
// rozloučíme se s ním
$a=mysql_fetch_row($sql);
if (mysql_num_rows($sql) == 0)
{
Header("HTTP/1.0 401 Unauthorized");
Header("WWW-Authenticate: Basic realm=\"RS - Admin Center\"");
echo "Neautorizovaný přístup";
mysql_close($conn);
exit;
}
else
{
MySQL_Query("UPDATE autori SET prace='a' WHERE login LIKE '$PHP_AUTH_USER'");
}
// spojení s databází již nepotřebujeme, proto jej uzavřeme
mysql_close($conn);
}
// následuje rozdělení okna prohlížeče na rámy
Header("Pragma: No-cache");
Header("Cache-Control: no-cache");
Header("Expires: ".GMDate("D, d M Y H:i:s")."GMT");
?>
samotná stránka
<HTML>$_SERVER[PHP_AUTH_USER] ????
$_SERVER["PHP_AUTH_USER"]</HTML>
Sory!, už je to v pořádku, já zapoměl předělat proměnné i na stránkách která se načítají do rámu. Hrubá chyba!