Hier denk ik een mooi up-to-date, schoon en simpel PHP script te hebben gevonden om te gebruiken voor het gebruik van een contacformulier op mijn website (concept). Bovendien zit er een FAQ bij, dus prima geschikt voor de ultieme newbie die ik ben.
Voordat ik het script en de bijbehorende html verder ga verfijnen en uitbreiden met wat anti-spam maatregelen moet ik eerst de zaak in z'n meest simpele vorm werkzaam zien te krijgen. Dat lukt slechts ten dele. Er wordt met succes doorverwezen naar de 'bedankt voor uw feedback'-pagina (wat is ie mooi he
!!), maar er komt geen e-mail aan op het in het script opgegeven e-mail adres. De FAQ dat betrekking heeft op dit script zegt hierover het volgende:
Ondanks het volgen van deze basic PHP tutorial kan ik zelf de fout niet ontdekken.
* Dat method=post in de html niet geschreven staat als method="post" blijkt niet van invloed.
[code=php]
<?php
// Configuration Settings
$SendFrom = "Form Feedback <....@home.nl>";
$SendTo = "....@home.nl";
$SubjectLine = "Feedback Submission";
$ThanksURL = "Uwberichtisverzonden.html"; //confirmation page
// Build Message Body from Web Form Input
foreach ($_POST as $Field=>$Value)
$MsgBody .= "$Field: $Value\n";
$MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
$_SERVER["HTTP_USER_AGENT"];
$MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe
// Send E-Mail and Direct Browser to Confirmation Page
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
header("Location: $ThanksURL");
?>
[/code=php]
[code=html]
<form method=post action="feedback.php">
Your Name: <input type=text name="Name" size=25><br>
Your E-Mail: <input type=text name="EMail" size=30><br>
Your Comment: <textarea name="Comment" rows=4 cols=30></textarea><br>
<input type=submit value="Submit Feedback">
</form>
[/code=html]
Voordat ik het script en de bijbehorende html verder ga verfijnen en uitbreiden met wat anti-spam maatregelen moet ik eerst de zaak in z'n meest simpele vorm werkzaam zien te krijgen. Dat lukt slechts ten dele. Er wordt met succes doorverwezen naar de 'bedankt voor uw feedback'-pagina (wat is ie mooi he
Het weglaten van "From: $SendFrom" heeft echter niet mogen baten. Telefonisch contact met de webhoster - Deziweb - bevestigt vervolgens dat PHP-mail niet geblokkeerd is, zoals hierboven gesuggereerd. Eveneens ondersteunt Deziweb PHP 5.Q: The "Thank Your" page shows up correctly, but I don't get any e-mail?
A: If the PERFECT script properly redirects you to the confirmation web page but fails to send an e-mail, try replacing the the line:
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
with:
mail($SendTo, $SubjectLine, $MsgBody);
If that doesn't work, your server is probably configured to block the "mail()" function (see: The PHP Group, SMTP, and WeberDev). Ask your web hosting company if they allow PHP mail.
Ondanks het volgen van deze basic PHP tutorial kan ik zelf de fout niet ontdekken.
* Dat method=post in de html niet geschreven staat als method="post" blijkt niet van invloed.
[code=php]
<?php
// Configuration Settings
$SendFrom = "Form Feedback <....@home.nl>";
$SendTo = "....@home.nl";
$SubjectLine = "Feedback Submission";
$ThanksURL = "Uwberichtisverzonden.html"; //confirmation page
// Build Message Body from Web Form Input
foreach ($_POST as $Field=>$Value)
$MsgBody .= "$Field: $Value\n";
$MsgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
$_SERVER["HTTP_USER_AGENT"];
$MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe
// Send E-Mail and Direct Browser to Confirmation Page
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
header("Location: $ThanksURL");
?>
[/code=php]
[code=html]
<form method=post action="feedback.php">
Your Name: <input type=text name="Name" size=25><br>
Your E-Mail: <input type=text name="EMail" size=30><br>
Your Comment: <textarea name="Comment" rows=4 cols=30></textarea><br>
<input type=submit value="Submit Feedback">
</form>
[/code=html]