Autor Zpráva
rhintin
Profil
zdravim už dva dny mám problém s odesíláním formuláře potřebuju po jeho odeslaní a splnění podmínek přesměrovat na jinou stránku pomoci fce header pokud nebudou splněny vypíše se chybová hláška ale pořád se mi to nedaří bud mi funguje po odeslání přesměrovaní a nefungujou chybový hlašky nebo naopak a ta jenom na localhostu na hostingu mam problem s výstupem před header zkoušel jsem kuli tomu přepsat skoro celej script ale nějak to pořád nejde:( poradíte mi prosim

ZDE je kod php:

<?php 
if (isset($_POST['odeslat'])) 
{
if (strlen($_POST['email']) > 0) {
  $email = TRUE;
} else {
  $email = FALSE;
  $zprava .= '<p>Zapoměli jste zadat vaš E-mail!</p>';
}
if (is_numeric($_POST['velikost_banneru']) > 0) {
  $velikost_banneru = TRUE;
} else {
  $velikost_banneru = FALSE;
  $zprava .= '<p>Potřebujeme znát přesné rozměry vašeho banneru!</p>';
}
if (is_numeric($_POST['ico']) > 0) {
  $ico = TRUE;
} else {
  $ico = FALSE;
  $zprava .= '<p>Nezadali jste vaše ičo!</p>';
}
if (is_numeric($_POST['robot']) > 0) {
  $robot = TRUE;
} else {
  $robot = FALSE;
  $zprava .= '<p>Zapoměli jste vyplnit kontrolní otázku!</p>';
}
if (mail("muj@email.cz", "Odesilatel ".$_POST['email']."", "Email2: ".$_POST['email_t']."\ncenova_skupina: ".$_POST['cenova_skupina']."\nformat_banneru:".$_POST['format_banneru']."\nEmail: ".$_POST['email']."\nvelikost_banneru: ".$_POST['velikost_banneru']."\nweb_firmy: ".$_POST['web_firmy']."\nTermin dodani banneru: ".$_POST['termin']."\nNazev a adresa firmy: ".$_POST['nazev_adresa_firmy']."\nico: ".$_POST['ico']."\ndic: ".$_POST['dic']."\nrobot: ".$_POST['robot']."\npoznamky: ".$_POST['poznamky']." \n"))
{
header("Location:odeslano.php");
} 
else 
if (isset($zprava)) {
echo '<font color="red">', $zprava, '</font>';
}
}
?>
AM_
Profil
1) když chceš pomoct nauč se používat interpunkci
2) co znamená problém s výstupem před header? před header žádný výstup být nemůže
rhintin
Profil
prostě se mi ted nedaří aby se vypsala zprava když nejsou podmínky splněny vždycky se to rovnou odešle a přesměruje.
AM_
Profil
Nemuzes psat vystup a pak posilat headery, headery musi jit prvni, pokud chces uzivateli neco vypsat a presmerovat az treba za 5 vterin, musis presmerovavat pres <meta http-equiv="refresh" content="5;url=cil" /> pricemz 5 je timeout v sekundach. Chvalim tecku na konci textu, cestina ma jeste carky ve vete.

//EDIT: tenhle refresh můžeš si myslím taky poslat přes header("refresh: 5;url=cil"); nikdy jsem to nezkoušel, ale http-equiv by měly být meta tagy ekvivalentní http headerům. Stejně to takhle ale musíš odpálit před jakýmkoli výstupem.
rhintin
Profil
chápu mě už to přesměrování funguje tim že jsem echo s chybovou hláškou přesunul pod header, ale asi tam mám někde chybu a i když do formuláře nic nevyplnim a odešlu ho tak se to rovnou přesměruje místo aby to vypsalo chybovou hláškou $zprava .
AM_
Profil
Vždyť to povídám... na tohle musíš použít přesměrování s prodlevou... přes hlavičku location se přesměrovává hned a je jedno jestli máš nějaký výstup
rhintin
Profil
blbost, mě už to funguje

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: