login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Formulier werkt niet (Opgelost)

Offline karel - 02/10/2010 08:14
Avatar van karelHTML interesse Ik maakte volgend formulier doch werkt het niet ? Kan iemand eens kijken wat ik fout doe. Alvast bedankt

  1. <?php
  2. if (isset($_POST['verzenden'])) {
  3.  
  4. function check_email($address) {
  5. list($local, $host) = explode("@", $address);
  6. $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
  7. $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
  8. $match_local = eregi($pattern_local, $local);
  9. $match_host = eregi($pattern_host, $host);
  10.  
  11. if($match_local && $match_host) {
  12. return 1;
  13. }
  14. else {
  15. return 0;
  16. }
  17. }
  18.  
  19. if (!trim($_POST['Inschrijven']))
  20. $error="U moet een e-mail adres invullen!";
  21.  
  22. if ($error != "") {
  23.  
  24. echo $error."<br><a href=\"javascript:history.go(-1);\">Klik hier</a> om terug te keren";
  25.  
  26. }
  27.  
  28. else {
  29.  
  30. $bericht = "Inschrijven: ".$_POST['inschrijven'];
  31.  
  32. mail ("info@computerlijn.be", "Contact site", $bericht, "FROM: Site");
  33.  
  34. echo "Bedankt ".$_POST['inschrijven'].", Bedankt voor uw inschrijving!";
  35. }
  36. }
  37.  
  38. else {
  39. ?>
  40. <table width="100%" border="0" class="navbox1">
  41. <tr>
  42. <td>
  43. <form method="post" action="index.php?p=contact">
  44. <table width="100%" cellpadding="0" cellspacing="0" class="navbox2">
  45. <tr>
  46. <td width="34%" class="blue_txt_11">Inschrijven op onze nieuwsbrief:</td>
  47. <td width="42%"><input type="text" name="inschrijven" id="inschrijven" size="28"></td>
  48. <td width="24%"><input type="submit" name="verzenden" value="Verzenden"></td>
  49. </tr>
  50. </table>
  51.  
  52. </table>
  53. <?php
  54. }
  55. ?>

12 antwoorden

Gesponsorde links
Offline icemar - 02/10/2010 08:39 (laatste wijziging 02/10/2010 08:40)
Avatar van icemar Lid Er staat 1 foutje in bij Inschijven moet inschijven worden heb deze aangepast in je code en heb nog een paar extra aanpassingen gemaakt zo dat je formulier nog wat veiliger is geworden.
heb overal in de code commentaar gezet van wat ik heb aangepast.
  1. <?php
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['verzenden'])) { // extra controle toegevoegd zo dat er geen Get op het formulier kan worden toegepast.
  3.  
  4. function check_email($address) {
  5. list($local, $host) = explode("@", $address);
  6. $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
  7. $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
  8. $match_local = preg_match($pattern_local, $local); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  9. $match_host = preg_match($pattern_host, $host); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  10. if($match_local && $match_host) {
  11. return 1;
  12. } else {
  13. return 0;
  14. }
  15. }
  16. if (!trim($_POST['inschrijven'])) // hier stond Inschrijven. met een hoofdletter I en in de name is het met een kleine i
  17. $error="U moet een e-mail adres invullen!";
  18. if ($error != "") {
  19. echo $error."<br><a href=\"javascript:history.go(-1);\">Klik hier</a> om terug te keren";
  20. } else {
  21. $bericht = "Inschrijven: ".$_POST['inschrijven'];
  22. mail ("info@computerlijn.be", "Contact site", $bericht, "FROM: Site");
  23. echo "Bedankt ".$_POST['inschrijven'].", Bedankt voor uw inschrijving!";
  24. }
  25. } else {
  26. ?>
  27. <table width="100%" border="0" class="navbox1">
  28. <tr>
  29. <td>
  30. <form method="post" action="">
  31. <table width="100%" cellpadding="0" cellspacing="0" class="navbox2">
  32. <tr>
  33. <td width="34%" class="blue_txt_11">Inschrijven op onze nieuwsbrief:</td>
  34. <td width="42%"><input type="text" name="inschrijven" id="inschrijven" size="28"></td>
  35. <td width="24%"><input type="submit" name="verzenden" value="Verzenden"></td>
  36. </tr>
  37. </table>
  38. </td>
  39. </tr>
  40. </table>
  41. <?php
  42. }
  43. ?>
Offline karel - 02/10/2010 09:04
Avatar van karel HTML interesse Bedankt, maar het werkt niet ?
Als ik een e-mail adres invul en op verzenden klik dan kom ik op een blanco pagina terecht en ontvang geen mail
Offline icemar - 02/10/2010 09:15 (laatste wijziging 02/10/2010 09:18)
Avatar van icemar Lid mail settings moet je waarschijnlijk nog instellen test je dit local ?
Ik heb de vervolg pagina in action verwijderd de rede ik heb die niet dus kan ik ook niet door verwijzen.
Offline karel - 02/10/2010 09:21 (laatste wijziging 02/10/2010 09:22)
Avatar van karel HTML interesse Nog steeds werkt het niet !
Wat bedoel je met mail settings nog instellen
ik test dit online !
Offline icemar - 02/10/2010 09:47 (laatste wijziging 02/10/2010 09:57)
Avatar van icemar Lid Heb de mail aangepast zie hier onder als goed is zou het nu wel correct moeten werken.
Er was zo te zien geen host bekend bij het versturen en daardoor werkte de mail functie niet correct.
  1. <?php
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['verzenden'])) { // extra controle toegevoegd zo dat er geen Get op het formulier kan worden toegepast.
  3.  
  4. function check_email($address) {
  5. list($local, $host) = explode("@", $address);
  6. $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
  7. $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
  8. $match_local = preg_match($pattern_local, $local); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  9. $match_host = preg_match($pattern_host, $host); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  10. if($match_local && $match_host) {
  11. return 1;
  12. } else {
  13. return 0;
  14. }
  15. }
  16. if (!trim($_POST['inschrijven'])) // hier stond Inschrijven. met een hoofdletter I en in de name is het met een kleine i
  17. $error="U moet een e-mail adres invullen!";
  18. if ($error != "") {
  19. echo $error."<br><a href=\"javascript:history.go(-1);\">Klik hier</a> om terug te keren";
  20. } else {
  21. $to = "info@computerlijn.be";
  22. $subject = "Inschrijven:";
  23. $bericht = "Ik wil mij inschijven voor de nieuwsbrief mijn email: " . $_POST['inschrijven'] ;
  24. $header = "FROM: ". $_POST['inschrijven'];
  25. mail($to,$subject, $bericht, $header);
  26. echo "Bedankt ".$bericht .", Bedankt voor uw inschrijving!";
  27. }
  28. } else {
  29. ?>
  30. <table width="100%" border="0" class="navbox1">
  31. <tr>
  32. <td>
  33. <form method="post" action="">
  34. <table width="100%" cellpadding="0" cellspacing="0" class="navbox2">
  35. <tr>
  36. <td width="34%" class="blue_txt_11">Inschrijven op onze nieuwsbrief:</td>
  37. <td width="42%"><input type="text" name="inschrijven" id="inschrijven" size="28"></td>
  38. <td width="24%"><input type="submit" name="verzenden" value="Verzenden"></td>
  39. </tr>
  40. </table>
  41. </td>
  42. </tr>
  43. </table>
  44. <?php
  45. }
  46. ?>
Bedankt door: karel
Offline karel - 02/10/2010 10:22 (laatste wijziging 02/10/2010 10:23)
Avatar van karel HTML interesse OK het werkt zeer vriendelijk bedankt !

Offline icemar - 02/10/2010 10:24 (laatste wijziging 02/10/2010 10:25)
Avatar van icemar Lid Heb je een online linkje ? => niet meer van toepassing.
Ik was te snel ziet nu wel dat het werkt.
Was waarschijnlijk een caching van php die was blijven staan in eerste instantie denk ik.
Dat je daarom al de post had gegeven dat het niet werkte.
Offline karel - 02/10/2010 10:27
Avatar van karel HTML interesse Hoe bedoel je, zeg maar !

Misschien nog een vraagje 
zaosl je kon zien ging het hier over 1 veld waar een e-mail adres moest ingevuld worden.
Mijn vraag voor dit veld was inschrijven op de nieuwsbrief.
Kan ik ook bv 3 vragen maken met een vinkbox zodat de bezoeker kan kiezen uit bv. inschrijven, uitschrijven, andere ?
Offline icemar - 02/10/2010 10:30
Avatar van icemar Lid Ja dat is mogelijk.

Maar je kan hier dan beter radio buttons voor gebruiken dan kunnen ze maar 1 optie aangeven.
Let wel op dat je dan eerst de afhandeling van de opties verwerkt voor dat je de mail verstuur.

Als je hierbij hulp nodig heb dan zie ik het wel.
Offline karel - 02/10/2010 10:32
Avatar van karel HTML interesse ok, hmmmmmmm hoe begin ik hieraan ?
Offline icemar - 02/10/2010 10:50 (laatste wijziging 02/10/2010 10:51)
Avatar van icemar Lid Heb het ff voor je gemaakt
  1. <?php
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['verzenden'])) { // extra controle toegevoegd zo dat er geen Get op het formulier kan worden toegepast.
  3.  
  4. function check_email($address) {
  5. list($local, $host) = explode("@", $address);
  6. $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
  7. $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
  8. $match_local = preg_match($pattern_local, $local); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  9. $match_host = preg_match($pattern_host, $host); // ook de controle aangepast eregi is niet meer beschikbaar in php 5.3 daarom preg_match gebruiken
  10. if($match_local && $match_host) {
  11. return 1;
  12. } else {
  13. return 0;
  14. }
  15. }
  16.  
  17. // afhandling radio buttons
  18. if($_POST['actie'] == "aan") {
  19. $actie = "aanmelden";
  20. }
  21.  
  22. if($_POST['actie'] == "uit") {
  23. $actie = "afmelden";
  24. }
  25.  
  26. if($_POST['actie'] == "geen") {
  27. $actie = "geen actie";
  28. }
  29. if (!trim($_POST['inschrijven'])) // hier stond Inschrijven. met een hoofdletter I en in de name is het met een kleine i
  30. $error="U moet een e-mail adres invullen!";
  31. if ($error != "") {
  32. echo $error."<br><a href=\"javascript:history.go(-1);\">Klik hier</a> om terug te keren";
  33. } else {
  34. $to = "info@computerlijn.be";
  35. $subject = "Inschrijven:";
  36. $bericht = "Ik wil mij ".$actie. " voor de nieuwsbrief mijn email: " . $_POST['inschrijven'] ;
  37. $header = "FROM: ". $_POST['inschrijven'];
  38. mail($to,$subject, $bericht, $header);
  39. echo "Bedankt ".$bericht .", Bedankt voor uw inschrijving!";
  40. }
  41. } else {
  42. ?>
  43. <table width="100%" border="0" class="navbox1">
  44. <tr>
  45. <td>
  46. <form method="post" action="">
  47. <table width="100%" cellpadding="0" cellspacing="0" class="navbox2">
  48. <tr>
  49. <td width="34%" class="blue_txt_11">Inschrijven op onze nieuwsbrief: <br />
  50. <input type="radio" name="actie" value="aan" checked/><label>inschijven</label><br />
  51. <input type="radio" name="actie" value="uit"/><label>uitschijven</label><br />
  52. <input type="radio" name="actie" value="geen"/><label>geen</label> <br />
  53. <input type="text" name="inschrijven" id="inschrijven" size="28"> <br />
  54.  
  55.  
  56. <input type="submit" name="verzenden" value="Verzenden"></td>
  57. </tr>
  58. </table>
  59. </td>
  60. </tr>
  61. </table>
  62. <?php
  63. }
  64.  
  65.  
  66. ?>
Bedankt door: karel
Offline karel - 02/10/2010 11:07
Avatar van karel HTML interesse Zeer vriendelijk bedankt, realy appreciated

HET WERKT !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s