We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7019
    • 135 Posts
    hallo,

    ik weet dat je een contactformulier met e-form kan maken

    ik ben nog niet zo lang bezig met modx, maar wens dus graag mijn contactformulieren die ik altijd gebruik in andere websites (zonder modx), nu ook nog te gebruiken.

    dit is mijn snippet:

    <?php
    if(!empty($_POST['submit']))
    { 
    if(strlen($_POST['naam']) == 0)
      { $error_msg .="- Vul aub uw naam in.<br>"; } 
    if(strlen($_POST['voornaam']) == 0)
      { $error_msg .="- Vul aub uw voornaam in.<br>"; }   
    if(strlen($_POST['telefoon']) == 0)
      { $error_msg .="- Vul aub uw telefoon- of GSM-nummer in.<br>"; }
    if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['emailadres']))
      { $error_msg .="- Vul aub een geldig email adres in.<br>"; } 
    if(strlen($_POST['vraag']) == 0)
      { $error_msg .="- Laat aub weten waar u meer info over wenst.<br>"; }
      
    if(!empty($error_msg))
      { 
        //Een van de velden werd niet goed ingevuld 
        echo "<div style='font-weight:bold; border:1px dashed #C13605; color:#C13605;padding-left:5px'>Contactformulier kon niet worden uitgevoerd door volgende redenen:<br><br>"; 
        echo $error_msg; 
        echo "<br>Klik aub op <a href=javascript:history.back(1)>Ga terug</a> en vul alle velden correct in.</div><br><br>"; 
      }
    else 
      { 
        $ontvanger = "[email protected]"; //Het email adres van de persoon die vragen moet ontvangen. 
        $naamvoornaam = $_POST['naam'] . " " . $_POST['voornaam']; //naam en voornaam van de verzender
        $emailadres = $_POST['emailadres']; //het emailadres van de verzender
        $subject = "Contact via website Lili-Wood.be"; //onderwerp van de mail. 
        $header = "From: " . $naamvoornaam . " <".$emailadres.">\r\n"; 
        $mail_body = "Contact via website Lili-Wood.be: " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n"; 
        $mail_body .= "De volgende gegevens werden ingevuld:\n\n"; 
        $mail_body .= "Naam: " . $_POST['naam'] . "\n";
        $mail_body .= "Voornaam: " . $_POST['voornaam'] . "\n";
        $mail_body .= "Straat: " . $_POST['straat'] . "\n";
        $mail_body .= "Postcode - Gemeente: " . $_POST['postcode'] . " " . $_POST['gemeente'] . "\n";
        $mail_body .= "Telefoon/GSM: " . $_POST['telefoon'] . "\n";
    	$mail_body .= "E-mailadres: " . $_POST['emailadres'] . "\n";
    	$mail_body .= "Vraag: " . $_POST['info'] . "\n";
        $mail_body .= "\n\n -- Einde contactpagina --"; 
        mail($ontvanger, $subject, $mail_body, $header); 
        echo "<b>Uw bericht is succesvol verzonden.</b><br><b>Er zal zo spoedig mogelijk contact met u opgenomen worden.</b></font><br>";  
      }
    }  
    else 
    { 
    ?>
            <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="contact">
              <div class="formentry"> 
                <label class="label" for="naam">Naam: *</label>
                <input name="naam" type="text" size="30" id="naam" />
              </div>
              <div class="formentry"> 
                <label class="label" for="voornaam">Voornaam: *</label>
                <input name="voornaam" type="text" size="30" id="voornaam" />
              </div>
              <div class="formentry"> 
                <label class="label" for="straat">Straat + nr:</label>
                <input name="straat" type="text" size="30" id="straat" />
              </div>
              <div class="formentry"> 
                <label class="label" for="postcode">Postcode:</label>
                <input name="postcode" type="text" size="5" id="postcode" />
              </div>
              <div class="formentry"> 
                <label class="label" for="gemeente">Gemeente:</label>
                <input name="gemeente" type="text" size="30" id="gemeente" />
              </div>
              <div class="formentry"> 
                <label class="label" for="telefoon">Telefoon/GSM: *</label>
                <input name="telefoon" type="text" size="15" id="telefoon" />
              </div>
              <div class="formentry"> 
                <label class="label" for="emailadres">E-mailadres: *</label>
                <input name="emailadres" type="text" size="30" id="emailadres" />
              </div>
              <div class="formentry"> 
                <label class="label" for="info">Vraag: *</label>
                <textarea name="info" cols="45" rows="6" id="info"></textarea>
              </div>
              <div> 
                <input class="button" type="submit" name="submit" value="Verzenden" />
              </div>
              <div id="veldenverplicht"> (Velden met een * zijn verplicht in te vullen) 
              </div>
            </form>
            <?php
    					}
    ?>


    alles komt er perfect te staan, maar vanaf dat men klikt op verzenden dan gaat hij gewoon naar de index.php en doet hij verder niets. Zelfs als je een verplicht veld niet hebt ingevuld, gaat hij gewoon naar de index. Heeft dit iets te maken het volgende:
    <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="contact">


    of moet ik de 2 onderdelen van php in mijn code splitsen in 2 snippets en de html in een chunk ofzo?
      • 7019
      • 135 Posts
      hallo,

      ik heb verschillende manieren geprobeerd en alles is gelukt, behalve 1 ding:

      mijn &report verwijst naar een snippet en dat kan die niet uitvoeren blijkbaar. maar mijn report is in php, dus een chunk kan niet dan.

      hoe kan ik ervoor zorgen dat het report toch in php is?

      kan ik bv met 1 of ander event van eform een snippet oproepen, zodat deze snippet wordt gebruikt als report?
        • 7019
        • 135 Posts
        verdorie zeg, hoe makkelijk kan het zijn.

        ik heb gewoon het volgende in een snippet gezet en deze snippet opgeroepen en klaar is kees:
        <?php
        if(!empty($_POST['submit']))
        { 
        if(strlen($_POST['naam']) == 0)
          { $error_msg .="- Vul aub uw naam in.<br>"; } 
        if(strlen($_POST['voornaam']) == 0)
          { $error_msg .="- Vul aub uw voornaam in.<br>"; }   
        if(strlen($_POST['telefoon']) == 0)
          { $error_msg .="- Vul aub uw telefoon- of GSM-nummer in.<br>"; }
        if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['emailadres']))
          { $error_msg .="- Vul aub een geldig email adres in.<br>"; } 
        if(strlen($_POST['vraag']) == 0)
          { $error_msg .="- Laat aub weten waar u meer info over wenst.<br>"; }
          
        if(!empty($error_msg))
          { 
            //Een van de velden werd niet goed ingevuld 
            echo "<div style='width:500px; font-weight:bold; border:1px dashed #C13605; background: #000000; color:#FFFFFF;padding-left:5px'>Contactformulier kon niet worden uitgevoerd door volgende redenen:<br><br>"; 
            echo $error_msg; 
            echo "<br>Klik aub <a href=javascript:history.back(1)>hier</a> en vul alle velden correct in.</div><br><br>"; 
          }
        else 
          { 
            $ontvanger = "[email protected]"; //Het email adres van de persoon die vragen moet ontvangen. 
            $naamvoornaam = $_POST['naam'] . " " . $_POST['voornaam']; //naam en voornaam van de verzender
            $emailadres = $_POST['emailadres']; //het emailadres van de verzender
            $subject = "Contact via website Lili-Wood.be"; //onderwerp van de mail. 
            $header = "From: " . $naamvoornaam . " <".$emailadres.">\r\n"; 
            $mail_body = "Contact via website Lili-Wood.be: " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n"; 
            $mail_body .= "De volgende gegevens werden ingevuld:\n\n"; 
            $mail_body .= "Naam: " . $_POST['naam'] . "\n";
            $mail_body .= "Voornaam: " . $_POST['voornaam'] . "\n";
            $mail_body .= "Straat: " . $_POST['straat'] . "\n";
            $mail_body .= "Postcode - Gemeente: " . $_POST['postcode'] . " " . $_POST['gemeente'] . "\n";
            $mail_body .= "Telefoon/GSM: " . $_POST['telefoon'] . "\n";
        	$mail_body .= "E-mailadres: " . $_POST['emailadres'] . "\n";
        	$mail_body .= "Vraag: " . $_POST['vraag'] . "\n";
            $mail_body .= "\n\n -- Einde contactpagina --"; 
            mail($ontvanger, $subject, $mail_body, $header); 
            echo "{{danku}}";  
          }
        }  
        else 
        { 
        ?>
        <h1><span style="text-decoration: underline;">Contact</span></h1>
        <p><strong>Aarzel niet ons te contacteren voor al uw vragen. Wij zullen u zo spoedig mogelijk een antwoord geven.</strong></p>
        <p><strong>U kan ons steeds bereiken op volgende manieren:</strong></p>
        <ul>
        <li style="list-style-type: disc; margin-left: 20px;"><strong>Telefoon : 0486/69.33.14</strong></li>
        <li style="list-style-type: disc; margin-left: 20px;"><strong><a title="[email protected]" href="mailto:[email protected]">[email protected]</a></strong></li>
        <li style="list-style-type: disc; margin-left: 20px;"><strong>Via onderstaand contactformulier:</strong></li>
        </ul>
        <div id="formcontact">
        <form method="post" action="[~[*id*]~]" id="EmailForm" name="EmailForm">
        
                  <div class="formentry"> 
                    <label for="naam">Naam: *</label>
                    <input name="naam" type="text" size="30" id="naam" />
                  </div>
                  <div class="formentry"> 
                    <label for="voornaam">Voornaam: *</label>
                    <input name="voornaam" type="text" size="30" id="voornaam" />
                  </div>
                  <div class="formentry"> 
                    <label for="straat">Straat + nr:</label>
                    <input name="straat" type="text" size="30" id="straat" />
                  </div>
                  <div class="formentry"> 
                    <label for="postcode">Postcode:</label>
                    <input name="postcode" type="text" size="5" id="postcode" />
                  </div>
                  <div class="formentry"> 
                    <label for="gemeente">Gemeente:</label>
                    <input name="gemeente" type="text" size="30" id="gemeente" />
                  </div>
                  <div class="formentry"> 
                    <label for="telefoon">Telefoon/GSM: *</label>
                    <input name="telefoon" type="text" size="15" id="telefoon" />
                  </div>
                  <div class="formentry"> 
                    <label for="emailadres">E-mailadres: *</label>
                    <input name="emailadres" type="text" size="30" id="emailadres" />
                  </div>
                  <div class="formentry"> 
                    <label for="info">Vraag: *</label>
                    <textarea name="vraag" cols="45" rows="6" id="vraag"></textarea>
                  </div>
                  <div> 
                    <input class="button" type="submit" name="submit" value="Verzenden" />
                  </div>
                  <div id="veldenverplicht"> (Velden met een * zijn verplicht in te vullen) 
                  </div>
        
                </form>
        </div>
                <?php
        					}
        ?>
        


        blijkbaar het geen dat van belang is, is het volgende :
        <form method="post" action="[~[*id*]~]" id="EmailForm" name="EmailForm">