Autor Zpráva
Kuta
Profil
Ahoj. Mam problem se session a s naslednym prihlasovacim formularem pro administraci...
Kdyz vlozim uzivatelske jmeno: "zkouska" a heslo: "zkouska" do login-x.php, tak to vychodi chybu, ktera je popsana nize na strance.

Vypis zdrojaku (login-x.php) je zde:
=========================

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head></head>

<body>

<?
//Zde nastav uz. jmeno a heslo
$user="zkouska";
$pass="zkouska";

//kterou stránku otevřít po přihlášení?
$protected="admin.php";

//Česky
$auth="Přihlášení";

#End of configuration..............................................

if ($_GET['action']=='validate'){
if(($_POST['user']==$user)&&($_POST['passwd']==$pass)){
header("Cache-control: private");
session_start();
$_SESSION["user_is_logged"] = 1;
header("Location: ".$protected);
exit;
}
}
?>

<h1>Login</h1>
<form action="login-x.php?action=validate" method="post">
<table>
<tr>
<td>Uživatelské jméno</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>Heslo</td>
<td><input type="password" name="passwd"></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Pokračovat"></td>
</tr>
</table>
</form>
</div>

</body>
</html>





Vypis chyby je zde:
==============
Warning: Cannot modify header information - headers already sent by (output started at login-x.php:6) in login-x.php on line 21

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at login-x.php:6) in login-x.php on line 22

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at login-x.php:6) in login-x.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at login-x.php:6) in login-x.php on line 24


Dokaze mi nekdo prosim pomoci?
Jakym zpusobem muzu obejit ten problem s cookies?
Predem diky za vsechny reakce.
WertriK
Profil *
Dokaze mi nekdo prosim pomoci? - Ano, dokaze. Dokonce i ty by jsi zvladl sam kdyby jsi se podival na http://php.ftp.cvut.cz/manual/cs/function.header.php, hned v prvnim odstavci je tvuj problem popsany...
Jakym zpusobem muzu obejit ten problem s cookies? Viz odpoved c.1
Zadem nemas zac.

Po logickem uvazeni a dedukci by jsi mel dojit k necemu podobnemu tomuto :

<?
//Zde nastav uz. jmeno a heslo
$user="zkouska";
$pass="zkouska";

//kterou stránku otevřít po přihlášení?
$protected="admin.php";

//Česky
$auth="Přihlášení";

#End of configuration..............................................

if ($_GET['action']=='validate'){
if(($_POST['user']==$user)&&($_POST['passwd']==$pass)){
header("Cache-control: private");
session_start();
$_SESSION["user_is_logged"] = 1;
header("Location: ".$protected);
exit;
}
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head></head>

<body>

<h1>Login</h1>
<form action="login-x.php?action=validate" method="post">
<table>
<tr>
<td>Uživatelské jméno</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>Heslo</td>
<td><input type="password" name="passwd"></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Pokračovat"></td>
</tr>
</table>
</form>
</div>

</body>
</html>
Honza Široký
Profil
Nebo jsou ještě 2 možnosti:
1) Veškerý html kód ukládat do proměnné a tu nakonec vypsat
2) úplně na začátek skriptu dát <?php ob_start (); ?> a na konec <?php ob_end_flush ();?>
Toto téma je uzamčeno. Odpověď nelze zaslat.

0