Ondersteuning » Code oplossingen gezocht » Custom Contactformulier verzendt geen berichten

  • Opgelost eendkonijn

    (@eendkonijn)


    Hallo WP-forum,

    Ik heb een voorbeeld van een contactformulier van internet gedownload en op mijn website gemaakt. Wanneer ik deze invul en op ‘verzenden’ klik herlaadt de pagina zonder dat er een bericht verstuurd wordt.

    Als ik de velden niet compleet invul verschijnt ook de echo ‘vul alle velden in aub’ niet (dit was eerder wel het geval, maar na een aanpassing -ik weet niet meer welke -werkte dit ook niet meer. Het verzenden van een bericht via het formulier is nog nooit gelukt).

    Ik heb verschillende e-mailadressen geprobeerd.

    Omdat deze pagina een beetje op een vreemde manier in het WordPress-thema is ingebouwd (een extra thema met een geheel eigen stylesheet en opmaak) werken plugins als Contact Form 7 hierop niet. Ik gebruik wel Contact Form 7 voor een contactformulier op een andere pagina en die werkt wel naar behoren (het zou dus niet aan de webhost moeten liggen?).

    Het gaat om deze pagina:
    http://hetvertaalcollectief.nl/welkom/

    Hier is de code:

    <?php
    $action=$_REQUEST['action'];
    
    if ($action=="")    /* display the contact form */
        {
        ?>
        <form  action="" method="POST" enctype="multipart/form-data">
        <input type="hidden" name="action" value="submit">
        Je naam:<br>
        <input name="name" type="text" value="" size="30"/><br>
        Je email:<br>
        <input name="email" type="text" value="" size="30"/><br>
        Je bericht:<br>
        <textarea name="message" rows="7" cols="30"></textarea><br>
        <input type="submit" value="Send email"/>
        </form>
        <?php
        }
    else                /* send the submitted data */
        {
        $name=$_REQUEST['gebruikersnaam'];
        $email=$_REQUEST['email'];
        $message=$_REQUEST['message'];
    
        if (($name=="")||($email=="")||($message=="")) {
            echo "Vul alle velden in aub.";
        } else {
            $from="From: rene@hetvertaalcollectief.nl";
     	$reply= "Reply-To: $name<$email>";
            $subject="Het contactformulier is ingevuld";
            mail("rvanderstok@gmail.com", $subject, $message, $from, $reply);
            echo "Email sent!";
        }
    }
    ?>

    Wie kan mij helpen?

    bedankt alvast

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Hallo,

    Allereerst zou je zo’n vraag beter op een php forum kunnen stellen, zoals PHP hulp.

    Je kunt je Contact Form 7 formulier via een template tag in een pagina template zetten (zie link).

    Jouw script klopt ook niet, heb even snel wat voor je gemaakt wat wel werkt (als het goed is) en ook iets veiliger is:

    <?php
    
    $name=strip_tags($_POST['name']);
    $email=strip_tags($_POST['email']);
    $message=strip_tags($_POST['message']);
    
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
    	if( empty($name) || empty($email) || empty($message) ) {
    		echo "Vul alle velden in aub.";
    	} else {
    		$subject  = "Het contactformulier is ingevuld";
    		$headers  = 'From: ' . $name . ' <' . $email . '>';
    		$headers .= 'Reply-To: <' . $email . '>';
    		mail("rvanderstok@gmail.com", $subject, $message, $headers);
    		echo "Bericht verzonden!";
    	}
    }
    ?>
    <form action="" method="POST">
    Je naam:<br>
    <input name="name" type="text" value="" size="30"/><br>
    Je email:<br>
    <input name="email" type="text" value="" size="30"/><br>
    Je bericht:<br>
    <textarea name="message" rows="7" cols="30"></textarea><br>
    <input type="submit" class="submit" value="Verstuur"/>
    </form>
    
    <?php ?>

    Maar ik adviseer je echt om middels een template tag een formulier te integreren ipv eigen script.

    Guido

    Thread starter eendkonijn

    (@eendkonijn)

    Opgelost! Ik heb nu gewoon weer CF7 gebruikt met de DO SHORTCODE-functie die je aangaf, Guido. Erg bedankt voor je hulp!

    Graag gedaan en succes met de site!

    Guido

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Het onderwerp ‘Custom Contactformulier verzendt geen berichten’ is gesloten voor nieuwe reacties.