Kontaktny formular, navratenie odpovede spolu s redirectom

Programovacie jazyky, rady, poradňa...
Slayter
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3111
Registrovaný: 28 jan 2006, 9:19
Bydlisko: Malmö, SWE

Kontaktny formular, navratenie odpovede spolu s redirectom

Príspevok od používateľa Slayter »

Caute, pohral som sa s jednym skriptom na vytvorenie kontaktneho formulara. Form funguje (zatial testujem bezchaptchovu verziu). Problem je ten ze to chcem zjednodusit, aby som to nemusel tahat cez 3 externe stranky chcem spravit ak sa sprava posle, tak to usera posle spat na 'contact.php' a na stranke sa zobrazi "Your message has been sent." Alebo podobny text. Momentalne to mam riesene externe a je to otrasne.

Tu je kod exec php, ktore vlastne realizuje posielanie, email adresy som cenzuroval.

Kód: Vybrať všetko

<?php

$EmailFrom = "[email protected]";
$EmailTo = "[email protected]";
$Subject = "Contact Form Message";
$Name = Trim(stripslashes($_POST['Name'])); 
$Tel = Trim(stripslashes($_POST['Tel'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Message = Trim(stripslashes($_POST['Message'])); 

$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $Tel;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
  echo "error";
}
?>
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: Kontaktny formular, navratenie odpovede spolu s redirectom

Príspevok od používateľa sharky-no »

1. formular nech sa odosle na contact.php
2. tento tvoj kod vloz do contact.php a zabal ho napr. do if(isset($_POST['nazovsubmitbuttonu']){}
3. echuj si v contact.php nejaku prazdnu premenu do ktorej budes vkladat chybovu alebo done hlasku
4. uprav si tento skript tak, ze namiesto redirectu, priradis tej premennej chybovu hlasku

hadam som pomohol
sorien
Medium Expert
Medium Expert
Príspevky: 88
Registrovaný: 02 jún 2011, 21:55

Re: Kontaktny formular, navratenie odpovede spolu s redirectom

Príspevok od používateľa sorien »

sharky-no napísal:1. formular nech sa odosle na contact.php
2. tento tvoj kod vloz do contact.php a zabal ho napr. do if(isset($_POST['nazovsubmitbuttonu']){}
3. echuj si v contact.php nejaku prazdnu premenu do ktorej budes vkladat chybovu alebo done hlasku
4. uprav si tento skript tak, ze namiesto redirectu, priradis tej premennej chybovu hlasku

hadam som pomohol
toto je pekne ale ked da potom refresh tak bude od neho chciet ten formular repostnut
sprav to napr takto

Kód: Vybrať všetko

http://www.satya-weblog.com/2009/10/avoid-resubmitting-html-form.html
alebo takto

Kód: Vybrať všetko

http://www.geekpedia.com/tutorial192_Prevent-Duplicate-Form-Submission.html
v zaklade formular postni POSTom a potom sprav redirect na contact.php?msg=1 a podla $_GET['msg'] aj ked to nieje idealne riesenie mohlo by stacit daj si do googla "PRG pattern" dozvies sa viac napr tento clanok je dobry

Kód: Vybrať všetko

http://www.theserverside.com/news/1365146/Redirect-After-Post
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: Kontaktny formular, navratenie odpovede spolu s redirectom

Príspevok od používateľa sharky-no »

preco by daval refresh clovek na formulari ktory prave odoslal? a kazdy prehliadac na to upozorni, cize normalny clovek to neposle 2krat.
sorien
Medium Expert
Medium Expert
Príspevky: 88
Registrovaný: 02 jún 2011, 21:55

Re: Kontaktny formular, navratenie odpovede spolu s redirectom

Príspevok od používateľa sorien »

sharky-no napísal:preco by daval refresh clovek na formulari ktory prave odoslal? a kazdy prehliadac na to upozorni, cize normalny clovek to neposle 2krat.
normalnych je velmi malo a kazdy klikne ok lebo nevie co sa deje, takto vznikaju double, tripple posty atd ... staci ze na stranke je aj iny obsah napriklad komentare a clovek chce vidiet ci tam pribudli dalsie atd. moznosti je vela ... velmi to suvisi s tym ako bol HTML protokol navrnuty ale kedze iba mizive percento programatorov videlo aj specifikaciu HTML nazvime to "good practice"
Napísať odpoveď