Autor Zpráva
phppetr
Profil
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
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;
Toto téma je uzamčeno. Odpověď nelze zaslat.

0