Autor Zpráva
Kvilda
Profil
Mám takovýto skript:
kde mám pouze jednoho uživatele a jedno heslo. Potřeboval bych aby mi tento skript prohledal DB user, kde je uloženo více uživatelů ........

<?
$uzivatel = "kvilda";
$heslo = "kvilda";

$PHP_AUTH_USER = $_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW = $_SERVER['PHP_AUTH_PW'];
if (!isset ($PHP_AUTH_USER)) overit();
elseif (!platne ($PHP_AUTH_USER,$PHP_AUTH_PW)) overit();

function overit() {
Header( "WWW-authenticate: basic realm=\"Soukrome\"");
Header( "HTTP/1.0 401 Unauthorized");
echo 'Špatný uživatel nebo heslo.';
exit;
}
function platne($user,$pass) {
global $uzivatel,$heslo;
return ($user != $uzivatel || $pass != $heslo) ? false : true;
}
?>


Pokusil jsem se to udělat takto:

<?
$result = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_assoc($result)) {
$uzivatel=$row["login"];
$heslo=$row["pass"];

$PHP_AUTH_USER = $_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW = $_SERVER['PHP_AUTH_PW'];
if (!isset ($PHP_AUTH_USER)) overit();
elseif (!platne ($PHP_AUTH_USER,$PHP_AUTH_PW)) overit();

function overit() {
Header( "WWW-authenticate: basic realm=\"Soukrome\"");
Header( "HTTP/1.0 401 Unauthorized");
echo 'Špatný uživatel nebo heslo.';
exit;
}
function platne($user,$pass) {
global $uzivatel,$heslo;
return ($user != $uzivatel || $pass != $heslo) ? false : true;
}
}
?>


ALE TO NEJDE.................... nevíte někdo co je s tím??

DíKYS
Michal Škrabálek
Profil
Záleží na tom, kolik uživatelů plánujete řešit. Kdysi jsem řešil tři uživatele a pomohla jednoduchá konstrukce "if", při větším množství to ale nemá význam.
Kvilda
Profil
předpokládám že bude docela dost uživatelů.............
Hugo
Profil
SELECT * FROM users WHERE login = '$_SERVER['PHP_AUTH_USER']' AND password = '$_SERVER['PHP_AUTH_PW']';


Je to jen princip, synatkticky je to spatne. Prohledej db a pokud najdes zaznam s odpovidajicim loginem a heslem, tak uzivatele prihlas.
Toto téma je uzamčeno. Odpověď nelze zaslat.