ugrás a tartalomhoz

Hova tegyem ebbe az egyszerű kódba a hibaüzeneteket?

Anonymous · 2006. Szep. 17. (V), 12.47
Hello
Van egy kitoltheto urlapom:
  1. <?php  
  2. function show_form()  
  3. {  
  4. ?>  
  5. <table width="100%" border="0" cellpadding="10" cellspacing="30">  
  6.  <tr>  
  7.   <td bgcolor="#FFFFFF">  
  8.   
  9.   <!--  
  10.   Ide kene benyomni az error szovegeket ha a "user" vagy "email"  
  11.   mezo nem volt kitoltve  
  12.   -->  
  13.   
  14. <form action="form.php" method="post">  
  15. Username:<input type="text" name="user" size="30">  
  16. Email:<input type="text" name="email" size="30">  
  17. <input type="submit name="submit" value="submit">  
  18.   
  19.   </td>  
  20.  </tr>  
  21. </table>  
  22. </form>  
  23.   
  24. <?php  
  25. }  
  26. ?>  
A kovetkezo keppen elenorzom ha ki van toltve a ket mezo (Username es Email)
  1. <?php  
  2. if (isset($_POST['submit']))  
  3. {  
  4.    $problem = FALSE;  
  5.   
  6.    if (emptyempty($POST['user']))  
  7.    {  
  8.      $problem = TRUE;  
  9.      print "User field required";  
  10.    }  
  11.   
  12.    if (emptyempty($POST['email']))  
  13.    {  
  14.      $problem = TRUE;  
  15.      print "Email field required";  
  16.    }  
  17.   
  18. if (!$problem)  
  19. {  
  20.    print "Az adatok jol voltak megadva";  
  21. }  
  22. else  
  23. {   
  24.   show form();  
  25. }  
  26.   
  27. }   
  28. else  
  29. {  
  30.   show_form();  
  31. }  
  32. ?>  

Hogyan tudnam benyomni az error uzeneteket oda ahol bejeloltam a fuggvenyben ?

Ha tudna valaki segiteni nagyon halas lennek !
 
1

egyszerű...

TeeCee · 2006. Szep. 17. (V), 15.14
mint az ágyba... khmm.. elalvás..

A legegyszerűbb megoldás szerintem ebben az esetben:
  1. <?php  
  2. function checkValues() {  
  3.   $errorStr='';  
  4.   //hibák keresése és $errorStr-be tárolása, nem pedig print-tel kiírása(!)  
  5.   ...  
  6.   //hiba vissza  
  7.   return $errorStr;  
  8. }  
  9. function show_form()  
  10. {  
  11.   $errors = checkValues();  
  12.   // innentől kezdve a $errors a hibaüzeneted lesz, azt cinálsz vele, amit csak akarsz...  
  13.   // Ha arra vagy híváncsi, hogy van-e hiba: if ($errors != '')  
mondtam, h eccerű, nem? ;-)
Sztem Te is rájöttél volna, ha már eddig eljutottál...
2

Kosz

Anonymous · 2006. Szep. 17. (V), 21.50
Ezt :

function checkValues() {

Az if(isset($_POST['submit'])) -on belul hozom letre?
3

bárhol

Off- · 2006. Szep. 17. (V), 22.08
Egy függvényt bárhol definiálhatsz, csak előbb legyen mint amikor meghívod. :-)
4

reszletesen

Anonymous · 2006. Szep. 18. (H), 07.31
Nem tudnad leirni kicsit reszletesebben ?

Igy kene kinezen a fugveny ? :
  1. function checkValues()  
  2. {  
  3.     $errorStr = '';  
  4.       
  5.     if(emptyempty($_POST['name']))  
  6.         {  
  7.         $errorStr = "Username field required";  
  8.         }  
  9.       
  10.     if(!ereg('^[a-z0-9\-_\.]{1,32}@[a-z0-9\-\.]{1,64}\.[a-z0-9]{2,5}'$_POST['email']))   
  11.         {  
  12.         $errorStr = "Email field required";  
  13.         }  
  14.       
  15.     return $errorStr;  
  16. }  
5

nagyjából

TeeCee · 2006. Szep. 18. (H), 08.24
huhh, először is:
Olyan jellegű kérdéseid vannak, ami alapján úgy vélem, hogy egy könyvet kellene először is venned ;)

Másrészről: igen, nagyjából úgy. Arra figyelj, hogy ha
  1. function checkValues() {  
  2.   $errorStr = '';  
  3.   if(emptyempty($_POST['name'])) {  
  4.     $errorStr .= "Username field required<br>";  
  5.   }  
  6.   if(!ereg('^[a-z0-9\-_\.]{1,32}@[a-z0-9\-\.]{1,64}\.[a-z0-9]{2,5}'$_POST['email'])) {  
  7.     $errorStr .= "Email field required<br>";  
  8.   }  
  9.   return $errorStr;  
  10. }  
így csinálod, akkor mindkét mezőre vonatkozó hibajelzések megtalálhatóak lesznek (.= az a hozzáfűzés)
A másik variáció, amit ilyesmi esetekben használtam már:
  1. function checkValues() {  
  2.   $errors = array();  
  3.   if(emptyempty($_POST['name'])) {  
  4.     $errors['name'] = "Username field required";  
  5.   }  
  6.   if(!ereg('^[a-z0-9\-_\.]{1,32}@[a-z0-9\-\.]{1,64}\.[a-z0-9]{2,5}'$_POST['email'])) {  
  7.     $errors['email'] = "Email field required";  
  8.   }  
  9.   return $errors;  
  10. }  
  11.   
  12. // használata:  
  13. $errMsgs = checkValues();  
  14. //Hibák kiírása, ha van hiba (minden hiba egy sorba)  
  15. // implode: összefüzi a tömb értékeit egy megadott stringgel  
  16. if ( $errMsgs !== array() ) {  
  17.   echo implode('<br>'$errMsgs);  
  18. }  
  19. //Ha az e-mailben van hiba, egyéb üzenet kiírása:  
  20. if ( isset($errMsgs['email']) ) {  
  21.   echo 'Egyéb üzenet...';  
  22. }  
  23. //Hibák kiírása felsorolásként:  
  24. echo '<ul><li>'.implode('</li><li>'$errMsgs).'</li></ul>';  
(A kódok nem 100%, hogy működnek, csak begépeltem ide, nopersze azért igyekeztem figyelni...)

(most jó napom van, azért írtam ilyeneket, amúgy RTFM lett volna a válasz ;)

Amúgy IMHO a kód-színezés nem működik megfelelően, vagy csak színtévesztek?

És ehhe: az RTFM-re az írja magyaráztaként, hogy "Read The Fine Manual" LoL :D
6

kosz

Anonymous · 2006. Szep. 18. (H), 08.33
Koszonom, az a gond, hogy az elenorzeseket a submit gomb megnyomasa utan kene elvegeze, ezert nem tudom a hibauzeneteket oda is benyomni ahol a HTML urlap van.

Ha megfigyeled a fenti kodomat az urlap ha error van ujbol elojon, ezert nehezebb.
7

ez itt a problema

Anonymous · 2006. Szep. 18. (H), 08.38
Ez itt a problema
  1. function show_form()  
  2. {  
  3. ?>  
  4. HTML urlap  
  5.   
  6. <!-- ide kell a hibauzenet -->  
  7.   
  8. HTLM ulap bezar  
  9. <?php  
  10. }  
  11. ?>  
HTML urlap meghivasa submit gombra
  1. if (isset($_POST['submit']))   
  2. {  
  3.   print " OK ";  
  4. }  
  5. else  
  6. {  
  7.   show_form();  
  8. }  
Akkor mukodne ha a submit dolgot a HTML lapba szurnam be de akkor nem tudom elohivni az urlapot error uzenetnel
8

Nezd ezt:

Anonymous · 2006. Szep. 18. (H), 08.47
Nezd meg ezt a kodot, igy mukodik:
  1. <?php  
  2. function checkValues()  
  3. {  
  4.     $errorStr = '';  
  5.       
  6.     if(emptyempty($_POST['name']))   
  7.     {  
  8.         $errorStr .= "Username field required<br>";  
  9.     }  
  10.     
  11.     if(!ereg('^[a-z0-9\-_\.]{1,32}@[a-z0-9\-\.]{1,64}\.[a-z0-9]{2,5}'$_POST['email']))   
  12.     {  
  13.          $errorStr .= "Email field required<br>";  
  14.     }  
  15.       
  16.     return $errorStr;  
  17. }  
  18. ?>  
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  2. "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
  6. <title>Questions</title>  
  7. </head>  
  8. <body>  
  9.   
  10. <form action="contactform.php" method="post">  
  11. <table width="100%" border="0" cellpadding="10" cellspacing="30">  
  12.  <tr>  
  13.     <?php  
  14.     if (isset($_POST['submit']))  
  15.     {  
  16.      $error = checkValues();  
  17.        
  18.      print $error;  
  19.     }  
  20.     ?>  
  21. <p>Name:<font size="-1" color="red">*</font><br>  
  22.   <input type="text" name="name" size="30" value=""><br>  
  23.   Organisation:<br>  
  24.   <input type="text" name="organisation" size="30" value="">  
  25.   <br>  
  26.   E-mail:<font size="-1" color="red">*</font><br>  
  27.   <input type="text" name="email" size="30" maxlength="100" value="">  
  28.   <br>  
  29.   Phone:<br><input type="text" name="phone" size="30" value="">  
  30.   <br>  
  31.   Address:<br><input type="text" name="address" size="30" value="">  
  32.   <br><br>  
  33.   <input type="checkbox" name="bpo" value="Yes">  
  34.   I would like more information about the BPO  
  35.   <br>  
  36.   <input type="checkbox" name="joinbpo" value="Yes">  
  37.   I would like to join the BPO<br>  
  38.   <textarea name="textareabpo" rows="0" cols="20"></textarea>  
  39.   <br><br>  
  40.   I would like to be included on the BPO mailing list:<br>  
  41.   <input type="radio" name="question1" value="Email">  
  42.   Email<br>  
  43.   <input type="radio" name="question1" value="Post">  
  44.   Post<br>  
  45.   <br>  
  46.   <input type="checkbox" name="sponsorbpo" value="Yes">  
  47.   I would like to sponsor the BPO<br>  
  48.   <input type="checkbox" name="contactbpo" value="Yes">  
  49.   I would like someone to contact me about the BPO<br>  
  50.   <br>  
  51.   Other:<br>  
  52.   <textarea name="other" rows="0" cols="20"></textarea>  
  53.   <br>  
  54.   <br>  
  55.   Any other comments:<br>  
  56.   <textarea name="other_comment" rows="0" cols="20"></textarea>  
  57.   <br>  
  58.   <br>  
  59.   <input type="submit" name="submit" value="Submit"></p>  
  60.   </td>  
  61.  </tr>  
  62. </table>  
  63. </form>  
  64.   
  65. </body>  
  66. </html>  
Csak az a baj, hogy ha minden adat OK nem tunik el a HTML urlap.Erre milyen segitseget tudnal adni ?

En osszinten ezert akadatam el, csinaltam mar regisztracios lapot de ott nem kellet befuzni az error uzenetetett egy bizonyos reszebe a HTMl kodnak.