Autor | Zpráva | ||
---|---|---|---|
war maniac Profil |
#1 · Zasláno: 9. 2. 2011, 19:27:22
Ahoj, mám problém ohledně mail formu který jsem si udělal.. Jde o to že se mail odešle i když uživatel nevyplní zprávu/textareu (respektive tam nechá defaultní text, nýbrž to mám
tak že popisy polí jsou jako value). I když tam mám takovouto podmínku: or $zprava == null or $zprava == "Vaše zpráva..." Skript: if(isset($_POST["odeslat"])) { if($jmeno == null or $jmeno == "Jméno..." or $mail == null or $mail == "E-mail..." or $predmet == null or $predmet == "Předmět..." or $zprava == null or $zprava == "Vaše zpráva..." or $url != null or $smail != null or $message != null or !ereg('^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}$',$mail)) echo message("Nebyly vyplněny všechny údaje, nebo není email ve správném tvaru. <br><a href='javascript: history.go(-1)'>Opravit</a></p>", warning); else { if (cs_mail("ww-2@email.cz", $predmet ." Od: " . $jmeno, "Zpráva z hynekhavel.ic.cz: " . "\n" . $zprava, "From: " . $mail . "\n")) echo message("Zpráva byla úspěšně odeslána, děkuji.", ok); else echo message("Zpráva nebyla odeslána. Pravděpodobně nefunguje SMTP klient. Omlouvám se. <br><a href='javascript: history.go(-1)'>Zkusit znovu</a>", error); } } html form: <form method="post" class="form"> <div class="bg-pole-middle"> <input type="text" value="Jméno..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="jmeno" class="pole-middle"></div> <div class="bg-pole-middle"> <input type="text" value="E-mail..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="email" class="pole-middle"></div> <div class="bg-pole-middle"> <input type="text" value="Předmět..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="predmet" class="pole-middle"></div> <div class="bg-pole-zprava"> <textarea onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" cols="5" rows="5" name="zprava" class="pole-zprava">Vaše zpráva... </textarea></div> <label class="hidden">Nevyplňovat:<input type="text" name="url" class="hidden"></label> <label class="hidden">Nevyplňovat:<input type="text" name="mail" class="hidden"></label> <label class="hidden">Nevyplňovat:<input type="text" name="massage" class="hidden"></label> <input type="submit" class="postsubmit" value=" " name="odeslat"> </form> |
||
puzzle Profil |
#2 · Zasláno: 9. 2. 2011, 21:37:25
Já to mám takto:
If ($jmeno=="" || $email=="" || .......){ echo "Nebly zadány potřebné údaje"; } |
||
war maniac Profil |
#3 · Zasláno: 9. 2. 2011, 22:16:05
No právě problém s odesláním prázdné zprávy nemám (sice tam mám null ale to je to samé). Mám problém že se mi to odesílá s defaultní hodnotou (což by nemělo mám tam tu podmínku..)..
|
||
xmark Profil |
#4 · Zasláno: 9. 2. 2011, 22:18:12
war maniac:
Jak máš propojenou proměnnou $zprava s tou textareou? |
||
war maniac Profil |
#5 · Zasláno: 9. 2. 2011, 22:21:39
xmark:
$zprava = $_POST['zprava']; |
||
puzzle Profil |
#6 · Zasláno: 10. 2. 2011, 18:27:41
war maniac:
A nemá tam být místo těch OR AND? |
||
jenikkozak Profil |
#7 · Zasláno: 10. 2. 2011, 18:45:57
puzzle:
„A nemá tam být místo těch OR AND?“ Asi určitě ne. Proměnná nemůže nabýt dvou hodnot. A jestli používáš OR nebo dvě svislítka je v tomto případě jedno. (V jiných případech se dá využít toho, že mají různou prioritu.) |
||
war maniac Profil |
#8 · Zasláno: 10. 2. 2011, 18:57:22 · Upravil/a: war maniac
puzzle:
Jako jenikkozak si myslím že tady problém nebude.. (neco or neco or neco ... zkontroluje postupně vše samostatně) (neco and neco and neco and ... zkontroluje jestli platí vše současně) |
||
jenikkozak Profil |
#9 · Zasláno: 10. 2. 2011, 19:00:25
Postup máš dobře.
Vtip spočívá v tom, že jako obsah textarea je bráno vše, co je mezi <textarea> a </textarea>. Tedy i zalomení řádku. :-) |
||
trubka Profil * |
#10 · Zasláno: 11. 2. 2011, 18:19:16
jenikkozak:
Amo opravdu to bylo tím .. taková stupidní chyba.. Díky všem vyřešeno |
||
Časová prodleva: 13 let
|
0