Autor Zpráva
xavier32
Profil *
Zdravim potreboval by som aby mi neaka dobra dusa trosku vysvetlila co je to funkcia header() a preco musi koncit funkciou exit().

Dalej este k tomuto: preco sa musi tato funkcia volat este skorej ako z aktualnej stranky a preco mi to vyhodi chybu ked tam mam echo ().
Martin Kuželka
Profil
preco sa musi tato funkcia volat este skorej ako z aktualnej stranky a preco mi to vyhodi chybu ked tam mam echo ()

Pokud se nepletu, tak nemůžeš nastavovat hlavičku až poté, co necháš něco vypsat.
Spikee
Profil
Hlavička musí bbyť v dokumente prvá, ak pred ňu ešte niečo dáš je to chyba
xavier32
Profil *
ale aj tak neviem preco mi to pise takuto chybu: Warning: Cannot modify header information - headers already sent by (output started at C:\iweby\www\registruj.php:9) in C:\iweby\www\registruj.php on line 46

ked mam v kode napisane header("Location: stranka.php");
exit();

a potom mi nalseduje zahlavie a ostatrne ....
Kajman
Profil *
Nějaké informace o hlavičkách naleznete překvapivě v popisu http protokolu.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Spikee
Profil
Hlavička musí byť úplne na začiatku (myslím, že tam nemôžu byť ani prázdne riadky) a exit() sa píše úplne na koniec.
xavier32
Profil *
Chalani my sme sa dobre nepochopili.

Hlavicku aj paticku mi to vypisuje ale moment ja sem supnem kod.


<?PHP
if (isset($odeslat)){
$sprava=NULL;
if (strlen ($meno)>0){
$meno=TRUE;
}else{
$meno=FALSE;
$sprava .= '<p>Nezadali ste meno!</p>';
}
if (strlen ($email)>0){
$email=TRUE;
}else{
$email=FALSE;
$sprava .= '<p>Nezadali ste svoju elektronicku postu !</p>';
}
if (strlen ($uzivatelske_meno)>0){
$uzivatelske_meno=TRUE;
}else{
$uzivatelske_meno=FALSE;
$sprava .= '<p>Neyadali ste svoje uzivatelske meno !</p>';
}

if (strlen ($heslo1)>0){
if ( $heslo1 == $heslo2){
$heslo=true;

}else{
$heslo =false;
$sprava .= '<p>Prepacte ale zadane heslo nesuhlasi</p>';
}
}else{
$heslo=false;
$sprava .= '<p><b>Neebolo yadane heslo</b></p>';
}

if ($meno && $email && $uzivatelske_meno && $heslo){

header ("Location: dakujeme.php");
exit();
}else{
$sprava .='<p><b>Skuste to znovu.</b></p>';
}
}
$titul_stranky = 'Registracia';
include ('./zahlavi.inc');
if (isset ($sprava)){
echo '<font color="red">',$sprava, '</font>';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset> <legend>Zadajte prosim svoje udaje:</legend>
<p><b>Meno:</b> <input type="text" name="meno" size="20" maxlength="40"></p>
<p><b>Adresa el. posty:</b> <input type="text" name="email" size="40" maxlength="60"></p>
<p><b>Uzivatelske meno:</b> <input type="text" name="uzivatelske_meno" size="20" maxlength="40"></p>
<p><b>Heslo:</b> <input type="password" name="heslo1" size="20" maxlength="40"></p>
<p><b>Potvrdenie hesla:</b> <input type="password" name="heslo2" size="20" maxlength="40"></p>
</fieldset>

<div align="center"><input type="submit" name="odeslat" value="Odoslat informacie!"></div>
</form>
<?php

include ('./pata.inc');
?>


ked vypisem formular tak by mi to malo logicky prejst na stranku dakujeme !!! ale vypise mi to chybu ktora je hore a to je ten problem na ktory sa pytam . :-)
Kajman
Profil *
Ten kód je hned od začátku? Píše to přeci, že od 9. řádku je už poslaný nějaky obyčejný text a tak header na 46. řádku nemůže být poslána.
krteczek
Profil
takhle: před hlavičkou můžeš mít hromadu kodu, ale nesmí tam být nic co by odeslalo hlavičku před tvou hlavičkou, to znamená žádné echo, print.a pokud se nepletu tak exit() nemusi být
krteczek
krteczek
Profil
HELE A NEMÁŠ TO V KODOVÁNÍ UTF-8???
xavier32
Profil *
krteczek sorry ale to kodovanie UTF-8 je namna trosku vela :-)
xavier32
Profil *
krteczek ja sa to este len ucim a skusam seliake variacie ale v tomto fakt neviem co mam zle ! NEmozes mi prosim ta ukazat co tam mam prepisat alebo co tam je zle? Lebo sam nato nedojdem a cumet do toho . . .

VOpred diky
centi
Profil
xavier32
Ten skript hore asi nie je celý obsah súboru registruj.php, že? Niečo pred <?PHP asi ešte máš, nejaký HTML kód, alebo podobne, nie?
xavier32
Profil *
centi mam pred tym len toto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>nieco</title>
</head>

<body>

Ten kod php

</body>
</html>

to je vsetko
centi
Profil
No a práve ten HTML kód (doctype, html, meta a pod) je už výstup, ktorý je posielaný prehliadaču a zároveň s ním sa už poslali aj hlavičky dokumentu. Preto ti vypisuje chybu. Pred header() funkciou nemôže byť žiadny výstup (echo, print, alebo hociaký text či už HTML alebo medzery apod).
Spikee
Profil
No veď v tom je chyba, už tam máš odoslanú hlavičku
xavier32
Profil *
ano uz to ide diky za pomoc uz vas nebudem otravovat s volovinami :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.