[ oriash @ 13.04.2008. 00:50 ] @
Napisao sam skriptu za provjeru kontakt forme , ali bez obzira dali je true i false šalji mi podatke na email. Želio bih da se podaci ne šalju ukoliko netko nije upisao ime,email,poruku ili ako je neispravan e-mail.Volio bih ako mi netko moze dati primjer vezano za moj problem.
Evo moje skripte pa ako mi netko može rec kako da to izvedem bio bih vam veoma zahvalan.
Code:

<?php
$to="[email protected]";
$ime=$_POST['ime'];
$mail=$_POST['mail'];
$poruka=$_POST['poruka'];

mail($to,$ime,$mail,$poruka);




////////////////////////////////////////////////////////////////////////

if (strlen($ime)>0) :
$ime=TRUE;
  
else :
$ime=FALSE;
echo "Zaboravili ste unjeti ime !";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

////////////////////////////////////////////////////////////////////////

if (strlen($mail)>0) :
$mail=TRUE;

else :
$mail=FALSE;
echo "Zaboravili ste unjeti e-mail !";  
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

/////////////////////////////////////////////////////////////////////////

if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$mail))
echo "Molimo upišite pravilni email!";  
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>"; 

////////////////////////////////////////////////////////////////////////

if (strlen($poruka)>0) :
$poruka=TRUE;
 
echo "Vaša poruka je poslana na $to ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>"; 
else :
$poruka=FALSE;
echo "Zaboravili ste unjeti poruku ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

 ?>


[Ovu poruku je menjao Nemanja Avramović dana 15.04.2008. u 11:02 GMT+1]
[ Miroslav Ćurčić @ 13.04.2008. 01:47 ] @
Za početak bi mogao da proveru podataka staviš PRE slanja pisma, džaba ti kasnije provera kad si pismo već posalo na početku skrpite.
[ agvozden @ 13.04.2008. 16:27 ] @
Ne bi bilo loše da provežbaš pisanje algoritama...

To više niko ne koristi, ali mislim da je početnicima koji prave ovakve greške vrlo potrebno...
[ dakipro @ 13.04.2008. 19:21 ] @
Hm... mozda se vise ne koriste u pisanoj formi (cak se i sa ovim ne mogu sloziti) ali se definitivno koriste u glavi... Naravno da iskustvo ubrzava pravljenje algoritama u glavi, radeci po navici vec poznate stvari, ali se definitivno (makar improvizovana vrsta algoritama) koristi. Neretko ih pisem (obicno kao teze) posle 8-10h rada, kada koncentracija vec ode u minus.
U potpunosti se slazem da je pocetnicima mnogo lakse da napisu algoritam pre nego krenu da programiraju, jer je daleko bitnije oformiti takav (programerski) nacin razmisljanja nego nauciti sintaxu. Tako da je ovo izvrstan savet za svakog pocetnika, kako bi sebi prvo razjasnili kako kod treba da tece, a posle ga je veoma lako napisati (kad se zna sta se treba napisati).
[ oriash @ 15.04.2008. 03:56 ] @
Pokusao sam izmjenit nesto i za sad mi uvjeti rade osim mail provjere ispravnosti tj.mail ako mi je false ne šalje mi ništa ali ako je ispravan mail svejedno mi kaže da je neispavan molim vas pomozite.Molim vas recite mi gdje je greška i kako da to ispravim.Hvala

Evo koda :

Code:
<?php
$to="[email protected]";
$ime=$_POST['ime'];
$mail=$_POST['mail'];
$poruka=$_POST['poruka'];




////////////////////////////////////////////////////////////////////////

if (strlen($ime)>0) :
$ime=TRUE;
  
else :
$ime=FALSE;
echo "Zaboravili ste unjeti ime !";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

////////////////////////////////////////////////////////////////////////
if (strlen($mail)>0) :
$mail=TRUE;

else :
$mail=FALSE;
 echo "Zaboravili ste unjeti e-mail !";  
 echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

//////////////////////////////////////////////////////////////////////// 
 if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$mail))
 

   echo "Molimo upišite pravilni email!";  
   echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>"; 

////////////////////////////////////////////////////////////////////////

if (strlen($poruka)>0) :
$poruka=TRUE;
 

else :
$poruka=FALSE;
echo "Zaboravili ste unjeti poruku ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

if ($to && $ime && $mail && $poruka) :
$sadrzaj="Hvala vam na poruci ";
mail ($mail , "Hvala vam na poruci " , $sadrzaj , "From:[email protected]");
echo "Vaša poruka je poslana na $to ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>"; 
else :
echo "Pokusajte ponovo"; 
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;
 ?>


[Ovu poruku je menjao Nemanja Avramović dana 15.04.2008. u 11:03 GMT+1]
[ Nemanja Avramović @ 15.04.2008. 10:06 ] @
A koju email adresu unosiš? Čini mi se da ovaj regularni izraz za proveru ispravnosti mejla nije baš najbolje napisan (^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$)

Probaj ovako:
^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z.]{2,5}$
[ oriash @ 15.04.2008. 14:56 ] @
Pokušao sam sa ^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z.]{2,5}$ , ali ista stvar za sad radi sve cak posalje i odgovor na mail osobi koja je poslala poruku s time ako je mail tocan , ali ja ne dobijem nikakvu poruku.

Probao sam neke stvari izmjenit ,ali nista

Code:
<?php
$to="[email protected]";
$ime=$_POST['ime'];
$mail=$_POST['mail'];
$poruka=$_POST['poruka'];




////////////////////////////////////////////////////////////////////////

if (strlen($ime)>0) :
$ime=TRUE;
  
else :
$ime=FALSE;
echo "Zaboravili ste unjeti ime !";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////// 
 if(!eregi("^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z.]{2,5}$",$mail))
 

   echo "Molimo upišite pravilni email!","<br>";  
  

////////////////////////////////////////////////////////////////////////

if (strlen($poruka)>0) :
$poruka=TRUE;
 

else :
$poruka=FALSE;
echo "Zaboravili ste unjeti poruku ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;

if ($to && $ime && (eregi("^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z.]{2,5}$",$mail)) && $poruka) :
$sadrzaj="Zahvaljuemo vam na poruci";
mail ($mail , "Hvala vam poruci" , $sadrzaj , "From:[email protected]");
echo "Vaša poruka je poslana na $to ";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>"; 
else:
echo "Pokusajte ponovo";
echo "<a href='http://www.ella-web.com/kontakt.htm'>BACK<br></a>";
endif;
 ?>


[Ovu poruku je menjao oriash dana 15.04.2008. u 16:28 GMT+1]

[Ovu poruku je menjao Nemanja Avramović dana 15.04.2008. u 19:07 GMT+1]
[ Nemanja Avramović @ 15.04.2008. 18:06 ] @
Loš parametar šalješ funkciji. Umesto:

Code:
mail ($mail , "Hvala vam poruci" , $sadrzaj , "From:[email protected]");


Stavi:

Code:
mail ($to , "Hvala vam poruci" , $sadrzaj , "From:$mail");