Autor | Zpráva | ||
---|---|---|---|
phppetr Profil |
#1 · Zasláno: 15. 9. 2005, 20:34:58
Ahoj,
mám problém v níže uvedeném skriptu. Je určen pro Apache 2 SSL + PHP 5 na platformě Windows 2000/XP. Problémy č. 1, č. 2 a č. 3 jsou zmíněny přímo ve skriptu. Uměl byste někdo tyto 3 problémy vyřešit? Díky moc, Petr <?php /* user and password for authenticate */ $auser = 'novak'; $apass = 'cislo'; // function authenticate function auth_user() { $realm = mt_rand( 1, 1000000000 ); header('WWW-Authenticate: Basic realm="Realm ID='.$realm.']"'); header('HTTP/1.0 401 Unauthorized'); if (!headers_sent()) die('Hlavičky neodeslány!'); die('Neoprávněný přístup!'); /* Problém č. 1: "return $realm;" je až za die, tudíž funkce nevrátí proměnnou :-(( */ return $realm; } # end function authenticate // if - authenticate if (!isset($_SERVER['PHP_AUTH_USER'])) { $rama = auth_user(); } else if ($_SERVER['PHP_AUTH_USER'] != $auser || $_SERVER['PHP_AUTH_PW'] != $apass) { $rama = auth_user(); } else if (isset($_GET['action']) && $_GET['action'] == 'logout') { /* Problém č. 2: "$rama = auth_user();" nevrátí 'Neoprávněný přístup!', ale zase autentifikační proces :-(( */ $rama = auth_user(); /* Problém č. 3: link 'login again' se nezobrazí a nevyžádá znovu autentifikační proces :-(( */ echo '<a href="'.$_SERVER['PHP_SELF'].'">login again</a><br />'; } # end if - authenticate /* output for authenticated users */ echo 'You are logged in!!! <hr />' . $rama . ' is Your Realm ID <hr />'; echo '<a href="'.$_SERVER['PHP_SELF'].'?action=logout">logout</a>'; ?> |
||
Matúš Kopáč Profil |
#2 · Zasláno: 16. 9. 2005, 10:05:28
1. jak zistujes spravnost mena a hesla?
2. vo funkcii auth_user() vzdycky skonci funkcia ked sa vykona die('Neoprávněný přístup!'); a dalej funkcia nebude nikdy pokracovat!!!. takze nevrati hodnotu $realm; |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0