Autor Zpráva
Joan
Profil
Zdravím,
mám už funkční webový formulář a v něm volitelné zatržení, že pisatel si chce svou zprávu poslat také sám sobě.
Pouze abych zabránila znovuodeslání formuláře, tak mám stránku přesměrovanou pomocí header na jinou -
v této jiné stránce mám nakódováno znění informace že "zpráva byla odeslána" a že "zpráva byla odeslána i na vaši adresu". A v tom je právě kámen úrazu:
pokud totiž pisatel zatrhne že chce kopii své zprávy na svůj mail, je vše v pořádku, zobrazí se správně obě hlášky (a oba maily se skutečně odešlou). Jenomže v případě, že nezatrhne kopii, tak se opravdu odešle jen jedna zpráva, ale druhá hláška že "zpráva byla odeslána i na vaši adresu" se bohužel zobrazí taky, což je špatně.
Když jsem ještě neměla přesměrování na jinou stránku, tak se obě hlášky zobrazovaly přesně jak mají na stejné stránce, kde je zpracující skript.
Když nechám obě hlášky na původních místech ve zpracujícím skriptu

if (!$chyba) 
        {
cs_mail("zlatberry@email.cz", $predmet, $zprava, "From: $email\n");
 echo "Zpráva byla úspěšně odeslána<br />";
      } 
      if (isset($_POST["kopie"]))
      if (($_POST['kopie']=="ano") && (!$chyba))
      {
cs_mail($email, $predmet2, "Z formuláře na webu zlatberry.cz jste odeslali tuto zprávu:\n---------------------------------------------------------------------------\n\n $zprava", "From: no-reply@zlatberry.cz\n");
 echo "Zpráva byla odeslána na Vaši adresu<br />";
      } 


tak se samozřejmě nezobrazí nic.

Uvědomila jsem si navíc, že vynechání přesměrování na jinou stránku s hláškami o odeslání mi bude užitečné i v tom, že v případě úspěšného odeslání chci VEDLE formuláře zobrazit třísekundovou stylovou animaci a nad nebo pod ni bych už napozicovala zprávičku o odeslání.
Otázka zní, jak zabránit znovuodeslání formuláře jinak než doporučovaným přesměrováním na jinou stránku, protože tomuto přesměrování se chci vyhnout už z těchto dvou důvodů.
Napadlo mě povolit znovuodeslání formuláře až třeba po 5 minutách, ale neumím si to naprogramovat... lépe v PHP nebo v JS?
Prosím, poradíte mi někdo? Děkuji předem :-)

P.S.: Tento článek jsem četla ale session mi zatím neříkají vůbec nic
Alphard
Profil
Joan:
jak zabránit znovuodeslání formuláře jinak než doporučovaným přesměrováním
Můžete dát do hidden pole formuláře nějaký hash. Při odeslání ho uložíte a pokud ho někdo použije znovu, tak to zastavíte.
Lepší bude ale přesměrování :-) V URL, na kterou přesměrujete, mohou být GET parametry, podle nich zobrazíte zprávy stavu.
Joan
Profil
Děkuji za odpověď. Bohužel prvním dvěma větám nerozumím lautr vůbec, jak uložit hash (tj. nějaký klíč, že?) a ani jak event. zastavit, učím se PHP teprve asi 2 měsíce...
Používám ve formuláři metodu POST, jak tam tedy vpašuji GET parametry? Pokud by vámi navrhovaným způsobem šla "přenést" správná hláška do přesměrované stránky, bylo by možné stejnou metodou zobrazit i krátkou animaci, která se má ukázat jen a pouze při odeslání správně vyplněných políček?
Toto bez další nápovědy opravdu sama neudělám...díky!

P.S.: Zkoušela jsem if (header("location....")) a za tím echo "Zpráva odeslána" ale hodilo to parse error. Je vůbec možné spojit header s vypsáním echo?
Taps
Profil
Joan:
ano, hash je řetěz poskládaný z náhodných znaků (písmena + číslice)
bylo by možné stejnou metodou zobrazit i krátkou animaci, která se má ukázat jen a pouze při odeslání správně vyplněných políček?
Ano, pak už je to jen o podmínkách

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