Autor | Zpráva | ||
---|---|---|---|
walkerpet Profil |
#1 · Zasláno: 21. 1. 2013, 11:25:42
Dobrý den.
Tvořím si sám své stránky pro obchod a potřeboval bych poradit s formulářem. Jsem opravdu lajk a v programování se nevyznám. Formulář mi funguje jak má, ale neumím ho ošetřit. Můj php kód formuláře <? $prijemce = "admin@akvaristikaskaskyostrava.cz"; $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") { Mail($prijemce, $predmet, $zprava, "From: " . $email); header("location:http://www.akvaristikaskaskyostrava.cz/odeslano.html");} else { echo header("location:http://www.akvaristikaskaskyostrava.cz/neodeslano.html"); } ?> a samotný formulář <form action="formular.php" method="post"> <p>Odesílatel:</p><input name="email" size="30" type="text"> <br> <p>Předmět:</p><input name="predmet" size="30" type="text"> <br> <p>Odpovězte: 1 + 1 =</p><input name="spam" size="23" type="text"> <br> <p>Zpráva:</p><textarea name="zprava" rows="8" cols="50"></textarea> <br> <input type="submit" value="Odeslat"> </form> Chtěl bych,aby byl formulář ošetřený proti útočníkům a když někdo zadá špatný tvar mailu nebo se pokusí odeslat prázdný formulář tak mu to stránka nepovolí. Zkoušel jsem to podle různých návodů, ale jak říkám opravdu jsem v programování laik a stránku mám jen pro jednoduchou prezentaci. Mohli byste mi napsat jak má vypadat kompletní kód ošetřeného formuláře? Děkuji za pomoc. |
||
Keeehi Profil |
#2 · Zasláno: 21. 1. 2013, 13:38:50
<?php if (!empty($_post["predmet"] and !empty($_post["zprava"] and !empty($_POST['email']) and isset($_POST['spam']) and $_POST['spam']==2 and preg_match('~^[a-z0-9._%+-]+@[a-z0-9.-]+\.[A-Z]{2,4}$~i',$_POST["email"])) Mail("admin@akvaristikaskaskyostrava.cz", $_POST['predmet'], $_POST['zprava'], "From: " . $_POST['email']); header("location:http://www.akvaristikaskaskyostrava.cz/odeslano.html");} else { echo header("location:http://www.akvaristikaskaskyostrava.cz/neodeslano.html"); } |
||
walkerpet Profil |
#3 · Zasláno: 21. 1. 2013, 16:25:50
Keeehi:
Zkusil jsem to, ale pokaždé mi při poslání formuláře vyskočí tohle Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ')' in /data/web/virtuals/36408/virtual/www/formular.php on line 2 Zkusil jsem tam tu závorku různě doplnovat, ale pak skáčou zase jiné chyby. |
||
jenikkozak Profil |
#4 · Zasláno: 21. 1. 2013, 16:40:51
Začátek té podmínky má být:
if (!empty($_post["predmet"]) and !empty($_post["zprava"]) and |
||
walkerpet Profil |
#5 · Zasláno: 21. 1. 2013, 17:08:18
jenikkozak:
:-D když to přepíšu tak se mi zobrazí zase taková chyba Parse error: syntax error, unexpected '}' in /data/web/virtuals/36408/virtual/www/formular.php on line 4 a když smažu i tu závorku naskočí tohle Parse error: syntax error, unexpected T_ELSE in /data/web/virtuals/36408/virtual/www/formular.php on line 5 Tak už fakt nevím. |
||
jenikkozak Profil |
#6 · Zasláno: 21. 1. 2013, 17:12:35
Chybí otevírací složená závorka na konci druhého řádku. (Ta co končí na čtvrtém řádku.)
|
||
walkerpet Profil |
#7 · Zasláno: 21. 1. 2013, 17:34:39
Tohle už fungovalo děkuju. jen se mi při odeslání formuláře nenačte stránka www.akvaristikaskaskyostrava.cz/odeslano.html, ale neodeslano..vše vyplnuju správně tak není ještě problém v těch podmínkách? Vím, že s tím už otravuju, ale chtěl bych to mít už hotové.
|
||
Keeehi Profil |
#8 · Zasláno: 22. 1. 2013, 14:58:18
Jejda, nepřečetl jsem si to po sobě a teď se za to stydím.
Toto bude lepší: <?php if (!empty($_POST["predmet"]) and !empty($_POST["zprava"]) and !empty($_POST['email']) and isset($_POST['spam']) and $_POST['spam']==2 and preg_match('~^[a-z0-9._%+-]+@[a-z0-9.-]+\.[A-Z]{2,4}$~i',$_POST["email"])) { Mail("admin@akvaristikaskaskyostrava.cz", $_POST['predmet'], $_POST['zprava'], "From: " . $_POST['email']); header("location:http://www.akvaristikaskaskyostrava.cz/odeslano.html"); exit; } else { header("location:http://www.akvaristikaskaskyostrava.cz/neodeslano.html"); exit; } |
||
Časová prodleva: 11 let
|
0