ugrás a tartalomhoz

Adatok ellenőrzése és küldése űrlapból HTML formátumban.

Anonymous · 2005. Nov. 21. (H), 12.54
Sziasztok!

Van egy űrlapom amiből beolvasom azadatokat, majd elküldöm e-mail-ben (HTML formátumban.
A segítségeteket szeretném kérni a következő problémákkal kapcsolatban:

1. Nem működik az (isset($valtozo)) függvény, a feldolgoz.php-ban. Mit rontottam el???
Mindig kiírja az eredményt és mindíg elküldi az e-mail, még akkor is, ha nem töltök ki egy mezőt sem.

2. Hogyan lehet megcsinálni azt, hogy csak akkor küldje ez az e-mailt, ha ráklikkelek egy gombra?

Előre is nagyon köszönöm a segítséget!

Itt vannak forráskódok:

urlap.php
  1. <? ob_start(); ?>  
  2. <html>  
  3. <head>  
  4. <script type="text/javascript" src="torol.js"></script>  
  5. </head>  
  6. <body>  
  7. <FORM name='form_colab' ACTION='feldolgoz.php' METHOD='post'>  
  8. <B>Név:</B>  
  9. <INPUT type='text' name='nev'><BR>  
  10. <B>Helység:</B>  
  11. <INPUT type='text' name='helyseg'><BR>  
  12. <B>e-mail:</B>  
  13. <INPUT type='text' name='email'><BR>  
  14. <input type='submit' name='submit' value='Küldés'>  
  15. <input type='button' name='sterge' value='Törlés' onclick='torol()'>  
  16. </FORM>  
  17. </BODY>  
  18. </HTML>  
  19. <? ob_end_flush(); ?>  
feldolgoz.php
  1. <?php  
  2.   
  3. if ((isset($nev)) & (isset($helyseg)) & (isset($email))) {  
  4.   
  5. $szoveg = "<HTML>";  
  6. $szoveg = $szoveg . "<BODY bgcolor=lightblue>";  
  7. $szoveg = $szoveg . "<br><br><br>";  
  8. $szoveg = $szoveg . "<p align='center'><font color='#000084' size=3><b>Az Ön által megatott adatok a következôek:</b></font></p>";  
  9. $szoveg = $szoveg . "<br><br><br>";  
  10. $szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;Név:</B> $nev<BR>";  
  11. $szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;Helység:</B> $helyseg<BR>";  
  12. $szoveg = $szoveg . "<B>&nbsp;&nbsp;&nbsp;&nbsp;e-mail:</B> $email<BR>";  
  13. $szoveg = $szoveg . "<br><br><br>";  
  14. $szoveg = $szoveg . "</BODY>";  
  15. $szoveg = $szoveg . "</HTML>";  
  16. print $szoveg;  
  17.   
  18. print "<FORM name='form'>";  
  19. print "<TABLE ALIGN='LEFT' WIDTH=8% BORDER=0 CELLPADDING=2 CELLSPACING=2><TBODY>";  
  20. print "<TR><TD ALIGN='RIGHT' NOWRAP>";  
  21. print "<input type='submit' name='submit' value='Küldés' onclick ='?????????'>";  
  22. print "</TD>";  
  23. print "<TD ALIGN='CENTER' NOWRAP>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";  
  24. print "<input type='button' name='vissza' value='Módosítás' onClick='location.href='urlap.php'>";  
  25. print "</TD></TR>";  
  26. print "</TBODY></TABLE>";  
  27. print "</FORM>";  
  28.   
  29. mail ("millye.laszlo##kukac##dsvcv.planet.ro","proba level",$szoveg,"From: felado##kukac##emailcim.hu(WWW.SCHWABEN.RO)\nX-Priority: 1 (Highest)\nMIME-Version: 1.0\nContent-type: text/html; charset=iso-8859-1");  
  30. }  
  31.   
  32. else {  
  33. print "Hiányosak az adatok, nem töltött ki minden mezôt!";  
  34. header('Location: urlap.php');  
  35. }  
  36.   
  37. ?>  
 
1

empty()

phpista · 2005. Nov. 21. (H), 13.34
1.) Az isset() helyett az:
empty(trim($nev)) stb... használd.
Ha az isset()-et használod nem lesz jó, mert változót ugyan átadtál a feldolgozó oldalnak, viszont az értéke üres, semmi, így a semmit küldöd el emailben.
2.) A törlés gombnál mi az az onClick esemény, egyszerűbb a : <input type="reset" value="Törlés">
3.) A $_POST[] tömböt használd a feldolgozó oldalon, biztonságosabb és így a helyes.
4.) A feldolgozó oldalt buffereld ne küldőt.
5.) a sok &npsp; helyett inkább bízd a CSS-re a margót.


Hát röviden ennyi. Remélem segítettem!
4

Köszönöm!

Anonymous · 2005. Nov. 21. (H), 15.11
Persze, hogy segítettél és még egyszer köszönöm!
Még csak egy kérdésem lenne. :)
A feldolgozó oldalon a print() függvénnyel íratom ki az űrlapot, amely két gombot tartalmaz: submit (Küldés) és button (Vissza). ez utóbbinál megadtam egy onclick eseményt a következő képpen: onClick='location.href='urlap.php'', de ez valamiert nem működik. Mit tegyek, hogy erre a gonbra kattintva visszaterelgessem a böngészőbe az "urlap.php"-t? Neked biztosan van valami jó ötleted. :)
Még egyszer köszi szépen!
5

history.back()

phpista · 2005. Nov. 21. (H), 15.45
<a href="/javascript:history.back()" target="_self">Vissza</a>
2

empty

Off- · 2005. Nov. 21. (H), 13.38
az isset azt viszgálja, hogy vannak-e olyan változok, és vannak is a scriptedben a form elkuldese utan, csak üresek. ezt az empty() függvénnyel nézheted meg.

továbba a $szoveg = $szoveg . "....."; aztan a végén kiirtad a $szoveg változot módszer nagyon tetszett nekem :)
csinálhatnad igy is:
  1. print "A szoveg . $egyvaltozo . "még egy kis szoveg" .  
  2. "uj sor";  
*****
Durucz Gábor
3

<Nincs cím>

azb · 2005. Nov. 21. (H), 15.07
.= osszefuzesre