Autor Zpráva
Wroxman
Profil
Zdravím.
Vytvořil jsem si svůj skript na přhlašování uživatelů s využitím PHP a MYSQL. Kód přihlašovacího skriptu je:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
$login = $_POST["username"];
$heslo = $_POST["password"];
$link = mysql_connect("localhost", "XXXXX", "XXXXXX");
mysql_select_db("XXXXXX");
$result = mysql_query("SELECT * FROM uzivatele WHERE login='".$login."' and heslo='".$heslo."'", $link);
$radku=mysql_num_rows($result);
if ($radku == 1) {
session_start();
session_register("prihlasen");
$_SESSION["prihlasen"] = true;
echo "Vitejte v intranetu...";
}
else {
echo "<b>Nesprávné uživatelské jméno nebo heslo</b><br>";
echo "<a href=\"index.php\">Zpět na přihlašovací stránku</a>";
}
mysql_close($link);
?>
</body>
</html>

Přihlašovací údaje jsou:
Uživatelské jméno: test
Heslo: test
URL skriptuhttp://www.khubajsn.mitranet.cz/intranet/
-----
A teď o co jde. Když si vyzkoušíte přihlásit se s výše uvedenými přihlašovacími údaji, skript login.php se připojí k databázi, ověří údaje, a pokud souhlasí, vytváří session prihlasen a nastavuje ji hodnotu true. Ostatní skripty, přístupné pouze pro přihlášené kontrolují hodnotu této session, pokud je hodnota session prihlasen true, pokračuje se dál. Pokud není hodnota session prihlasen true, skript se přeruší příkazem exit; a je zobrazena chybová hláška. Skript funguje, ale vyhazuje chybu:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /storage/home/www/khubajsn.mitranet.cz/subdomains/www/intranet/login.p hp:6)  in /storage/home/www/khubajsn.mitranet.cz/subdomains/www/intranet/login.p hp  on line 14

Řádek 14 obsažený v chybě je označen. Prosím, pomozte. Wroxman
BetaCam
Profil
Session musíš startovat ještě předtím než něco pošleš na výstup.
Tomashek
Profil
zkus použít session hned na prvním řádku

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