Hoi,

Een vraagje ik wil graag een contactformulier maken, wat me ook gelukt is. Maar als iemand me een bericht stuurt via mijn contactformulier dan krijg ik wel zijn bericht te zien in mijn mailbox. Maar als ik een reply wil doen dan lukt dat niet. Omdat ik zijn e-mailadres niet zie. In plaats daarvan krijg ik het volgende te zien:


Ook heb ik geprobeerd om een reply te doen, maar als ik naar de inbox ga van Ogenpi dan zie ik geen bericht van Rekenkanjer. Dit komt waarschijnlijk omdat ik in eerste instantie al zijn e-mailadres niet kon lezen. Kan iemand me vertellen hoe ik dit kan oplossen?

Hier is de code, en vanaf regel 41 kunt u mijn mail functie zien:
<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
require 'connect.inc.php';
require 'core.inc.php';
if (isset($_POST['contact_name']) && isset($_GET['contact_email']) && isset($_POST['contact_text'])) {
    $contact_name = $_POST['contact_name'];
    $contact_email = $_POST['contact_email'];
    $contact_text = $_POST['contact_text'];

    if (empty($contact_name) && empty($contact_email) && empty($contact_text)) {
        echo'Je naam, e-mailadres en bericht is nodig';
    }

    if (!empty($contact_name) && !empty($contact_email) && !empty($contact_text)) {
        if (strlen($contact_name) > 25 || strlen($contact_email) > 50 || strlen($contact_text) > 1000) {
            echo 'Sorry de maximale invoer is overschreden';
        }

        if (filter_var($contact_email, FILTER_VALIDATE_EMAIL) === false) {
            echo 'Dat is geen geldig e-mailadres';
        }
        if (ctype_alpha($contact_name) === false) {
            echo'Je naam moet alleen uit letters bestaan';
        }

        $contact_name = strip_tags($contact_name);
        $contact_name = stripslashes($contact_name);
        $contact_email = strip_tags($contact_email);
        $contact_email = stripslashes($contact_email);
        $contact_text = strip_tags($contact_text);
        $contact_text = stripslashes($contact_text);

        $to = '[email protected]';
        $subject = 'Contact form submitted.';
        $body = $contact_name . "\n" . $contact_text;
        $headers = 'Form: ' . $contact_email;

        if (@mail($to, $subject, $body, $headers)) {
            echo'Bedankt voor het verzenden van je bericht. We houden je spoedig op de hoogte';
            //header('Location: member.php');
           // exit();
        } else {
            echo'Sorry, een storing was aanwezig. Probeer het nog een keer';
        }
    }
} else {
    echo 'All fields are required';
}
?>

<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>Rekenkanjer</title>
        <link rel="stylesheet" href="css/main.css">
    </head>
    <body>
        <?php
        //if (isset($_GET['sent']) == true) {
        //    echo '<p> Bedankt voor het versturen van je bericht.';
        //}
        //  else
        ?>
        <div id="big_wrapper">
            <header id="top_header">
            </header>

            <nav id="top_menu">
                <ul>
                    <li><a href="index.php">Home</a></li>
                    <li><a href="contactformulier.php">Contact</a></li>
                </ul>
            </nav>

            <div id="new_div">
                <section id="main_section1">
                    <h4>Contactformulier</h4>
                    Rekenkanjer biedt de mogelijkheid om je vraag via onderstaand formulier te stellen. 
                    Je ontvangt zo spoedig mogelijk een antwoord van ons op het door jouw opgegeven e-mailadres.<br>

                    <form action="contactformulier.php" method="POST">
                        Name: <br> <input type="text" name="contact_name" maxlength="25"> <br><br>
                        Email adress:<br> <input type="text" name="contact_email" maxlength="50"><br><br>
                        Message: <br>
                        <textarea name="contact_text" rows="6" cols="30" maxlength="1000"></textarea>
                        <input type="submit" value="Send">
                    </form>

                </section>

                <aside id="side_score">
                    <h4>Inloggen:</h4>
                    <?php
                    if (loggedInUser()) {
                        header("Location: member.php");
                    } else {
                        include 'loginform.inc.php';
                    }
                    ?>
                </aside>
            </div>

            <footer id="the_footer">
                Copyright Rekenkanjer KTV305 GetConnected 2013
            </footer>

        </div>
    </body>
</html> 


Graag hoor ik van u een reactie. Alvast bedankt voor uw antwoord.

Mvg,

superky
Lijn 39 is fout, er staat 'Form:' i.p.v. From:
 
<?php
if (@mail($to, $subject, $body, $headers)) {
            echo'Bedankt voor het verzenden van je bericht. We houden je spoedig op de hoogte';
            //header('Location: member.php');
           // exit();
?>

je hebt een @ ervoor staan is dit niet een fout onderdrukken?
Haal de @ weg en kijk wat er gebeurt.
Haal voor de header de // weg ,want // wordt gebruikt voor commentaar toe te voegen en php ziet dit niet als een header en slaat het over.
exit wordt niet gedaan want er staan // voor dus zonder // ervoor dan sluit php mail af.

 
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

//@ weg laten kijken wat er gebeurd
 if (mail($to, $subject, $body, $headers)) {
            echo'Bedankt voor het verzenden van je bericht. We houden je spoedig op de hoogte';
           //
           header('Location: member.php');
           //nu sluit je deze functie af
           exit();
?>

hier onder zie je wat ik zag toen ik de code ging plakken in mijn php debug programma.

En let op dat je niet zomaar een willekeurig email adres kan opgeven in de From headers, een goed opgezette mailserver zal het bericht niet versturen.
hier heb je teveel van // staan haal het weg en je script werkt weer.je script loopt vast op dit stukje code.
hieronder.

<?php
        //if (isset($_GET['sent']) == true) {
        //    echo '<p> Bedankt voor het versturen van je bericht.';
        //}
        //  else
        ?>


als je de // weg haalt dan krijg je zo iets als hier onder.


<?php
        if (isset($_GET['sent']) == true) {
           echo '<p> Bedankt voor het versturen van je bericht.';
        }
// hier moet nog een ander functie bij geschreven worden want else en dan geen functie dan  weet het script nietwat het moet doen. dus zet er een functie bij else en sluit de if classe goed af           
else
        ?>
- Aar - op 08/06/2013 18:43:23

Lijn 39 is fout, er staat 'Form:' i.p.v. From:


Bedankt het werkt weer! En de rest ook bedankt hoor :) Ik zal de overige fouten ook verbeteren dan :)

Reageren