Hoe met contactformulier een mail ontvangen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

06/02/2015 15:31:36
Quote Anchor link
Ik probeer al 2 dagen het voor elkaar te krijgen om wanneer het contact formulier wordt ingevuld een mail te kunnen ontvangen waarop de ingevulde gegevens staan. Ik weet niet wat ik fout doe maar ik ontvng niet, misschien overbodig om te zeggen dat ik erg weinig kennis heb van eea. Eerst had ik de site gehost op mijn prive domein bij xs4all, maar voor prive gebruik ondersteunen hun servers geen PHP. Nu is de site gehost op:
http://main-site.nl/ deze server schijnt wel PHP te ondersteunen dus dat kan het probleem niet meer zijn.

Ik heb het volgende in elkaar geknutseld:

HTML:
<form action="mail.php" method="post">
<input name="name" placeholder="What is your name?" class="name" required />
<input name="emailaddress" placeholder="What is your email?" class="email" type="email" required />
<textarea rows="4" cols="50" name="subject" placeholder="Please enter your message" class="message" required></textarea>
<input name="submit" class="btn" type="submit" value="Send" />
</form>

en de PHP ziet er als volgt uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

    $recipient
="[email protected]";
    $name=$_POST["name"];
    $emailaddress=$_POST["emailaddress"];
    $subject=$_POST["subject"];
    $mailheader = "From: $emailaddress \r\n";

    $mailBody="Name: $Name\nEmail: $emailaddress\n\n$subject";

    mail($name, $emailaddress, $subject, $mailheader) or die("Error!");
    echo "Thank You!"

?>


Ik kan er maar niet achterkomen waar ik fout ga. Ik heb in de kop net als bij CSS en JS een regel toegevoegd naar mail.php, dat ziet er dan als volgt uit: <link rel="stylesheet" href="php/mail.php" type="text/css" /> maar helaas zonder resultaat. ( moet een .PHP bestand ook in de kop vermeldt worden voor verwijzing net als .css en .js, of hoeft dat niet?) Maar helaas had het toevoegen van deze regel ook geen effect. Kan iemand mij vertellen wat ik fout doe?

Ik dank alvast voor de moeite.
 
PHP hulp

PHP hulp

15/07/2024 00:37:26
 
- Ariën  -
Beheerder

- Ariën -

06/02/2015 15:36:01
Quote Anchor link
Gebruik correcte mailheaders: http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders

Ook kan je PHPmailer gebruiken.
 
Thomas van den Heuvel

Thomas van den Heuvel

06/02/2015 16:53:17
Quote Anchor link
Je roept mail() verkeerd aan:

mail($name, $emailaddress, $subject, $mailheader);

moet zijn:

mail($emailaddress, $subject, $mailBody, $mailHeader);

of met:
$to = $name.' <'.$emailaddress.'>'; // bv. userName <[email protected]>
mail($to, $subject, $mailBody, $mailHeader);

Maar er zijn wat limitaties aan deze $to, zie de RFC.
Als je het simpel wilt houden, gebruik gewoon $emailaddress.
 

09/02/2015 15:17:58
Quote Anchor link
Ik dank jullie voor de moeite, ik heb m.b.v. jullie informatie en Youtube eea als volgt aangepast. de HTML ziet er nu als volgt uit:

<head>
<link rel="stylesheet" href="php/mail.php" type="text/css" media="screen" />
</head>

<div id="form">
<form action="mail.php" id="contactForm" method="post">
<span>Name</span>
<input type="text" name="name" class="name" placeholder="Enter your name" tabindex=1 />
<span>E-mail</span>
<input type="text" name="email" class="email" placeholder="Enter your email" tabindex=2 />
<span id="captcha"></span>
<input type="text" name="captcha" class="captcha" maxlength="4" size="4" placeholder="Enter captcha code" tabindex=3 />
<span>Message</span>
<textarea class="message" name="message" placeholder="Enter your message" tabindex=4></textarea>
<input type="submit" name="submit" value="Send e-mail" class="submit" tabindex=5>
</form>

De mail.php heb ik als volgt aangepast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
      $to
   = '[email protected]';
      $subject = 'Contact formulier';
      $email = $_POST['email'];
      $message = $_POST['message'];
      $headers = 'From: <a href="mailto:[email protected]">main-site</a>' . "\r\n" .
        'Reply-To: <a href="mailto:[email protected]">main-site</a>' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
 
      mail($to, $subject, $message, $headers);
   ?>


Ik ontvang nu een mail met, aan: mijn eigen naam, antwoord aan: mijn eigen naam, omschrijving: contact formulier. Alleen de zaken die ingevuld worden op het contact formulier worden niet meegestuurd. Wat doe ik hier in fout?
 
- Ariën  -
Beheerder

- Ariën -

09/02/2015 15:26:25
Quote Anchor link
Apart, wat zegt deze code, als je je formulier hebt verstuurd?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "<pre>".print_r($_POST,1)."</pre>"; ?>
 
- SanThe -

- SanThe -

09/02/2015 15:33:37
Quote Anchor link
Headers kloppen niet.
 

09/02/2015 15:34:50
Quote Anchor link
Sorry gaat me boven mijn pet,( hij is niet hoog maar toch) waar moet ik dit toevoegen en waarkan ik dan zien wat er aan de hand is. Ik heb hem aan het einde van het php script toegevoegd ( voor de ?> ) maar dan ontvang ik geen mail meer.
 
- Ariën  -
Beheerder

- Ariën -

09/02/2015 15:49:28
Quote Anchor link
Dan moet je wel in ieder geval een array zien met je waardes die je verstuurt.
 

09/02/2015 16:04:18
Quote Anchor link
Sorry maar dit is volledig onbekend terrein voor mij, waar moet ik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "<pre>".print_r($_POST,1)."</pre>"; ?>
plaatsen en waar kan ik die array vinden?
 
Thomas van den Heuvel

Thomas van den Heuvel

09/02/2015 16:09:14
Quote Anchor link
Het enige wat je in je e-mailbericht meestuurt uit je formulier is $_POST['message'].

$_POST['email'] (oftewel $email) wordt nergens gebruikt (komt niet in $message terug).

En zoals SanThe aangeeft klopt er weinig van de mail headers.

Laat $headers anders gewoon weg, het voegt niets toe aan je e-mail, die toch enkel bestaat uit simpele tekst.

Pas als je "rijk gevulde" berichten wilt gaan opstellen waarin HTML gebruikt wordt (denk aan een nieuwsbrief in huisstijl van de website) of je attachments aan je bericht wilt hangen worden headers pas interessant.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.