Autor Zpráva
war maniac
Profil
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..."
. Prostě při vyplnění všech zbývajících polí správně, a nevyplnění zprávy se to stejně odešle a v mailu je "Vaše zpráva.." (u ostatních polí to nedělá). Nevím si s tím už rady.. díky

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
Já to mám takto:
If ($jmeno=="" || $email=="" || .......){

echo "Nebly zadány potřebné údaje";
}
war maniac
Profil
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
war maniac:
Jak máš propojenou proměnnou $zprava s tou textareou?
war maniac
Profil
xmark:
$zprava = $_POST['zprava'];
puzzle
Profil
war maniac:

A nemá tam být místo těch OR AND?
jenikkozak
Profil
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
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
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 *
jenikkozak:
Amo opravdu to bylo tím .. taková stupidní chyba.. Díky všem vyřešeno

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