Autor Zpráva
Light King
Profil
Ahoj, zkousel jsem udelat prihlaseni:



<?
session_start();

$nick = "admin";
$heslo = "heslo";

if(!isset($_SESSION['id']))
{
Header('HTTP/1.0 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="ADMIN SEKCE"');
}

if($PHP_AUTH_USER==$nick && $PHP_AUTH_PW==$heslo)
{
$_SESSION['id'] = "1";
}
else echo "Zadejs pravne heslo!";
?>


pokazde mi to pise zadej spravne heslo a furt vyskakuje to okno s loginem a heslem...pls nevi nekdo jak na to ?
Timy
Profil
No protože nejdřív kontroluješ, jestli existuje session a až po této kontrole ho případně vytvoříš.
Light King
Profil
No kdyz to dam takhle:



<?
session_start();¨
$nick = "admin";
$heslo = "heslo";
if($PHP_AUTH_USER==$nick && $PHP_AUTH_PW==$heslo)
{
$_SESSION['id'] = "1";
}
else echo "Zadejs pravne heslo!";

if(!isset($_SESSION['id']))
{
Header('HTTP/1.0 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="ADMIN SEKCE"');
}
?>


tak mi to pise errory

Warning: Cannot modify header information - headers already sent by (output started at C:Program FilesVertrigoServwww s eco2.php:11) in C:Program FilesVertrigoServwww s eco2.php on line 15

takze takhle to tez nejde
bukaj
Profil
Light King
tak mi to pise errory...
Pryč s tim echem nebo použij bufferování výstupu.
Timy
Profil
Jestli to dobře chápu, tak testuješ, jestli byly zadané správné údaje bez toho, aniž bys testoval, jestli byly poslané vůbec nějaké údaje. Takže když neodešlu žádné údaje (=to se stane vždycky), automaticky se provede else, tedy vypíšeš se echo. A po výstupu už nemůžeš posílat jiné http hlavičky.
Light King
Profil
bukaj - proc by tam nemohlo byt echo ?

Timy - tak jsem to upravil jak jsi rikal, ale porad mi to nejde prihlasit...uz to sice nepise errory furt dokola mi to hazi to okno s loginem...prosim nenapada te jeste neco proc to nejde ?

<?
session_start();

$nick = "admin";
$heslo = "heslo";

if($PHP_AUTH_USER!="" && $PHP_AUTH_PW!="")
{
if($PHP_AUTH_USER==$nick && $PHP_AUTH_PW==$heslo)
{
$_SESSION['id'] = "1";
}
else echo "Zadej spravne heslo!";
}

if(!isset($_SESSION['id']))
{
Header('HTTP/1.0 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="ADMIN SEKCE"');
}
?>
bukaj
Profil
Light King
proc by tam nemohlo byt echo ?
Když si přečeteš tu chybu, tak tam máš, že byl před header() už nějaký výstup. Což samozřejmě nesmí. A ten výstup způsobilo to echo.

Ale vůbec, když už používáš WWW autorizaci, proč do toho plést session.
Což takhle:
<?php
$nick = "admin"; $heslo = "heslo";
if(!($_SERVER['PHP_AUTH_USER'] == $nick && $_SERVER['PHP_AUTH_PW'] == $heslo))
{
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: Basic realm="ADMIN SEKCE"');
?>
pokud byl zmáčnut cancel
<?php
exit();
}
?>
chráněný obsah stránky....
Anonymní
Profil *
bukaj - diky moc!!! funguje to!! :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0