ugrás a tartalomhoz

Nem ellenörzi le hogy ki van-e töltve. Miért???

vitya · 2010. Jún. 18. (P), 18.08
Hali!
Egy kis segítséggel (még most tanulom a php-t) írtam egy kódot, ami egy adott formba beírt adatokat küld el a megadott e-mail címre.

A kód:
<body>
<!-- Az E-mail küldő eleje-->
<p align="center">
  <?php                            
if (isset ($_POST['neved']) && isset($_POST['email']) && isset($_POST['szoveg']))
{
$kuldo_neve = $_POST['neved'];      // Ez fogja kiirni amit a név mezőbe írt
$kuldo_email = $_POST['email'];     // ez azt amit az e-mail mezőbe írt
$kuldo_comment = $_POST['szoveg'];  // ez pedig azt amit szövegnek írt
mail ('csepany.viktor##kukac##mailbox.hu', 'Uzenet az oldaladrol.', "Kuldo neve: $kuldo_neve
E-mail cime: $kuldo_email
Hozzaszolasa: $kuldo_comment"       // ide pedig az amit a szövegmezőbe írt

 . date('Y/m/d H:i:s'), "FROM: $kuldo_email Reply-To: $kuldo_email"); } /* Ide figja kiírni azt a dátumot,
                                                                        amikor a felhasználó elküldte a levelet*/
else
{
echo ('Nem töltotted ki az összes mezőt!');
}
?>
<!--Az E-mail küldő vége-->
<!--Látható szöveg+link -->
  <span class="style1">K&ouml;sz&ouml;nj&uuml;k! Az e-mailt megkaptuk, hamarosan v&agrave;laszolunk r&aacute;!<br />
  </span><a href="index.htm" target="_blank" class="style1">Vissza</a></p>
<!--Látható szöveg+link vége -->
</body>



A form:
<body>
<center><form method="post" action="mail.php">
  <p>N&eacute;v:
    <br />
    <input name="neved" type="text" dir="ltr" lang="hu">
    <br>
    <br />
    E-mail c&iacute;m:
    <br />
    <input name="email" type="text" dir="ltr" lang="hu">
    <br>
    <br />
    E-mail tartalma:<br />
    <textarea name="szoveg" cols="50" rows="10" dir="ltr" lang="hu"></textarea>
    <br>
      <input type="submit" value="E-mail küld&eacute;se">
    </p>
  </form>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</center>

</body>


A probléma: A kód nem ellenőrzi le, hogy ki vannak-e töltve a mezők. :S Nem tudok rájönni hogy miért nem jó.
Segitsetek légyszi!
Előre is köszi!
 
1

ellenőrzés

Poetro · 2010. Jún. 18. (P), 18.36
Csak azt ellenőrzöd, hogy elküldte-e a mezőt, azt nem hogy van-e benne valami. Lásd isset és empty
2

Ahha akkor ezért nem jó

vitya · 2010. Jún. 18. (P), 19.02
Értem és azt akkor hogyan lehet megcsinálni, hogy mindeggyik mezőt külön leellenőrizze, hogy ki van-e töltve és ha pedig nincs kitöltve valameik, akkor mondjuk kiirja hogy: "Nem töltötted ki ezt meg azt a mezőt".
3

Sikerült megvalósítani. :D

vitya · 2010. Jún. 19. (Szo), 22.42
Egy kis kutakodás után sikerült találnom egy JavaScriptet amit átalakítottam. Leírom ide ha esetleg valakinek kéne. :)

A form.php head részébe:
  1. <?php   
  2. include "lang.php";  
  3. ?>   
  1.    
  2. <!--Mező kitöltés ellenörző eleje-->  
  3. <SCRIPT LANGUAGE="JavaScript">  
  4. <!-- Begin  
  5. function verify() {  
  6. var themessage = "<? echo $lang_mail["msg"]; ?> ";  
  7. if (document.form.neved.value=="") {  
  8. themessagethemessage = themessage + " - <? echo $lang_mail["neved"]; ?>";  
  9. }  
  10. if (document.form.email.value=="") {  
  11. themessagethemessage = themessage + " - <? echo $lang_mail["email"]; ?>";  
  12. }  
  13. if (document.form.szovet.value=="") {  
  14. themessagethemessage = themessage + " - <? echo $lang_mail["szovet"]; ?>";  
  15. }  
  16. if (document.form.szoveg.value=="") {  
  17. themessagethemessage = themessage + " - <? echo $lang_mail["szoveg"]; ?>";  
  18. }  
  19. if (themessage == "<? echo $lang_mail["msg"]; ?> ") {  
  20. //document.form.submit();  
  21.     return true;  
  22. }  
  23. else {  
  24. alert(themessage);  
  25. return false;  
  26.    }  
  27. }  
  28. //  End -->  
  29. </script>  
  30. <!--Mező kitöltés ellenörző vége-->  
A lang.php be:
  1. <?php  
  2. // Mail szövegek  
  3. $lang_mail["neved"] = "Neved";  
  4. $lang_mail["email"] = "E-mail cimed";  
  5. $lang_mail["szovet"] = "Szovet szama";  
  6. $lang_mail["szoveg"] = "Szoveg";  
  7. $lang_mail["msg"] = "Nem toltotted ki a kovetkezo mezoket: ";  
  8. $SITETITLE = "Levélküldés";  
  9. ?>  
Tökéletesen működik a dolog, csak az a gond, hogy nem szereti az ékezetes betűket. :S Már mindent megpróbáltam de nem akarja kiírni az ékezeteseket. pls help valaki

WoP
4

PHP kontra JS

Kevlar · 2010. Jún. 20. (V), 00.10
Az eredeti problémád PHP (tehát szerveroldali) ellenőrzésről szólt. Javascript-tel a böngészőben ellenőrzöl csupán, ha kikapcsolja a látogató a JS-t, már el is küldheti az üres formot. Kell a szerveroldali megvalósítás is.
Nézd meg Poetro hozzászólásában a linkeket, és írd át, hogy azt is ellenőrizze a PHP, hogy van-e valami a küldött változókban! De millió PHP megoldást találhatsz a neten a témában.
5

Sikerült!

vitya · 2010. Jún. 23. (Sze), 14.09
Ezaz! Sikerült megcsinálni, hogy ellenőrizze a mezőket, és még az ékezetes betűket is "szereti"!
Köszi a segitséget Poetro és Kevlar! :)