Prijava

Prijava

Personalizacija

Forum » Izdelava spletišč » PHP: Header

PHP: Header

Registriraj se

Bela01 :: 4. jan 2008, 19:36:31

Imam prijavnico, ki ima nekaj polj za katere je nujno da jih uporabnik izpolni. Če jih ne, bi rada, da odpre novo stran sicer izpiše, da je prijavnica bila uspešno poslana. Ne vem kje je še problem.

< ? ob_start() ? >
< ?php
...
$Ime = $_POST['Ime'];
...
$sporocilo_za_posiljanje .="Ime: $Ime\n\n";

...
$vas_email = "neki_mail@nekaj.com";
$naslov_sporocila = "Prijavnica"; //spremenite naslov sporocila
$glava ="$Ime \t $Priimek"; //od koga je prišlo sporocilo
...
if ($_POST['Ime']==""){
header('Location: http://napaka.html');
die();
}

if (mail($vas_email, $naslov_sporocila, $sporocilo_za_posiljanje, $glava))
{
echo "Prijavnica je bila uspesno poslana.";
}
else
{
echo "Prijavnica NI bila uspesno poslana!";
}


?>
< ?ob_end_flush() ?>


Izpis napake:
Warning: Cannot modify header information - headers already sent by (output started at /home/nlpsport/public_html/poslji.php:7) in /home/nlpsport/public_html/poslji.php on line 292

Vrstica 292 je takoj za tem:
if ($_POST['Ime']==""){
header('Location: http://napaka.html');
die();
}

arjan_t :: 4. jan 2008, 23:51:21

sedma vrstica je problem (headerji se že pošljejo), poglej če imaš kaki izpis prazno vrstico ipd.

Atos :: 5. jan 2008, 00:36:12

hm...zakaj sploh uporabljaš buffer? To je zaradi kakega drugega problema? Odstrani ob_start() in ob_end_flush().

Sicer pa je tipično napaka pri tem to, da imaš kje pred "header('Location: ...')" izpisano kako vrstico (to pomeni, da imaš bodisi kako vrstico, ki ni zajeta v php tagih (med "< ?php" in "?>") oz., da imaš pred tem kak echo). V tem primeru ti vrne tole napakico.

Se pravi je rešitev, da zagotoviš, da se niti ena vrstica ne izpiše pred "header('Location:...')" oz. da pred to vrstico nimaš echo.