| 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: 15 let
|
|||
0