Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: bimbo 18. 05. 2016, 10:33:27
-
Zdravím.
Nějak to nechapu.
https://evertpot.com/223/
<?php
$username = null;
$password = null;
// mod_php
if (isset($_SERVER['PHP_AUTH_USER'])) {
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
// most other servers
} elseif (isset($_SERVER['HTTP_AUTHORIZATION'])) {
if (strpos(strtolower($_SERVER['HTTP_AUTHORIZATION']),'basic')===0)
list($username,$password) = explode(':',base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
}
if (is_null($username)) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
die();
} else {
echo "<p>Hello {$username}.</p>";
echo "<p>You entered {$password} as your password.</p>";
}
?>
Fungovat to funguje
Sežere to
username = username
password = password
Jak však nastavím vlastní heslo?
-
No tak tam se nikde netestuje, jaké má to heslo s loginem být. Takže to sežere cokoli, ne jenom username-password.
Ten poslední else tam nemá co dělat, místo něj tam musí být něco jako if ($username=="...." && $password=="...") { ... }
Nebo pokud chceš dovolit jen jedinou kombinaci jména a hesla, tak if ($username!="...." || $password!="...") die();
-
Jinak to je podle mě úplně zbytečně překombinované.
Stačí tohle:
<?php
if ($_SERVER['PHP_AUTH_USER']!="login" || $_SERVER['PHP_AUTH_PW']!="heslo")
{
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
die("Authentization required\n");
}
// ... a tady už normálně skript, sem se to dostane jen po úspěšné autentizaci
?>
-
Děkují moc ;)