Hoi!
Ik ben een beginner op het gebied van het maken van een website. Tijdens een (ICT) Minor heb ik kennis gemaakt met dreamweaver en heb ik geleerd eenvoudige formulieren in php te schrijven. Voor mijn website heb ik een contactformulier gemaakt, zoals ik het in de minor geleerd heb en het lijkt wel te werken(http://millamuts.nl/contactformulier.html). Alleen lukt het mij niet dat de door de bezoeker ingevulde informatie ook daadwerkelijk wordt doorgestuurd naar mijn email-account. (hiervoor heb ik een connectie gemaakt met live-mail).
Hieronder vinden jullie mijn contactformulier-php. Misschien is het heel makkelijk op te lossen, maar ik weet niet waar de fout zit. Daarvoor is mijn kennis te beperkt.
Ik zou het heel fijn vinden als iemand mij op de fout zou kunnen wijzen.
Alvast bedankt,
M.

Hier mijn php-bestand:

<!DOCTYPE HTML>
<html><!-- InstanceBegin template="/Templates/Milla-template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- InstanceBeginEditable name="doctitle" -->
<title>Unbenanntes Dokument</title>
<!-- InstanceEndEditable -->
<link href="milla.css" rel="stylesheet" type="text/css">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>

<body>

<div class="container">
<div class="menu">
<ul class="nav">
<li><a href="index.html">welkom</a></li>
<li><a href="Milla_en_haar_vrienden.html">over het boek</a></li>
<li><a href="over_mij.html">over mij</a></li>
<li><a href="contactformulier.html">contact</a></li>
<li><a href="gastenboek.php">gastenboek</a></li>
</ul>
</div>

<div class="content">
<h1>&nbsp;</h1>
<!-- InstanceBeginEditable name="content" -->
<p><?php


$to = "[email protected]";
$subject = "Aanvraag van " . $_GET["naam"] . " (" . $_GET["email"] . ")";
$message = $_GET["boodschap"];

ini_set("smtp","mail.millamuts.nl");
ini_set("sendmail_from","[email protected]");
$headers = "From: [email protected]";


if (mail($to, $subject, $message, $headers))
{
echo "Mail verzonden";
}
else
{
echo "Er is iets mis gegaan";
}




?></p>
<!-- InstanceEndEditable -->
p;</p>

<!-- end .content --></div>
<!-- end .container --></div>
</body>
<!-- InstanceEnd --></html>
Die ini_sets kan je beter weglaten, mogelijk gaat het daarom fout. mail-relay wordt meestal niet geaccepteerd.
Zorg dat foutmeldingen aan staan in je php:
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Je header is niet in orde:
$headers = "From: Website <info@$website.nl>\r\n";
Geef gewoon relevante code, wat hebben we aan 20 regels met loze paragrafen? (hoort ook niet in je script thuis)....


Overigens, waarom gebruik je GET? De data komt via POST binnen.
bedankt voor de snelle antwoord. heb de overbodige code weggehaald en gedaan wat jullie me aangeraden hebben....het lijkt nog steeds te werken. krijg de melding mail verzonden. maar ik ontvang nog steeds geen mail op mijn account.:(
heb ik nog iets anders verkeerd gedaan?
Heb je het bestand wel opgeslagen als .php?
En gebruik je ook al POST? Zoals ik opgedragen heb?
Hi Maria,

Volgens mij jij haalt twee dingen door elkaar, ik probeer om stap voor stap uit te leggen:
Jij hebt twee pagina's nodig:
- contactformulier.html ( hier maak je een formulier <form> met daar in veld naam, email adres en bericht "zonder php, alleen html code")
- mail.php ( hier komt php gedeelte en die zorgt er voor dat de ingevulde text gemaild wordt )

nou maak eerste de contactformulier.html pagina en post het hier. Dan gaan we verder.

ps jij kan ook in een pagina doen maar dat is iets ingewikkelder
"En gebruik je ook al POST? Zoals ik opgedragen heb?"
Ja, dat heb ik ook veranderd.

Het is mij ook duidelijk dat ik twee paginas (een html, een php) moet aanmaken. heb ik zelfs al gedaan. hier is de html:
<!DOCTYPE HTML>
<html><!-- InstanceBegin template="/Templates/Milla-template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- InstanceBeginEditable name="doctitle" -->
<title>Unbenanntes Dokument</title>
<!-- InstanceEndEditable -->
<link href="milla.css" rel="stylesheet" type="text/css">
<!-- InstanceBeginEditable name="head" -->
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
<!-- InstanceEndEditable -->
</head>

<body>

<div class="container">
<div class="menu">
<ul class="nav">
<li><a href="index.html">welkom</a></li>
<li><a href="Milla_en_haar_vrienden.html">over het boek</a></li>
<li><a href="over_mij.html">over mij</a></li>
<li><a href="contactformulier.html">contact</a></li>
<li><a href="gastenboek_overzicht.php">gastenboek</a></li>
</ul>
</div>

<div class="content">
<h1>&nbsp;</h1>
<!-- InstanceBeginEditable name="content" -->
<p>Als je graag een vraag wilt stellen over het boek of over Milla en haar vrienden, kun je hieronder een bericht achterlaten.</p>
<p> Wil je alvast een boek reserveren, zet dan &quot;reserveren&quot; in het tekstveld voor bericht en je wordt op de hoogte gehouden over de vooruitgang van het boek.</p>
<p>&nbsp;</p>
<form method="post" action="http://millamuts.nl/contact.php">
<table>
<tr>
<td>
Naam:
</td>
<td><span id="sprytextfield1">
<input type="text" name="naam" />
<span class="textfieldRequiredMsg">Vul hier je naam in.</span></span></td>
</tr>

<tr>
<td>
Email:
</td>
<td><span id="sprytextfield2">
<input type="text" name="email" />
<span class="textfieldRequiredMsg">Email-adres niet correct.</span></span></td>
</tr>
</table>

<br />
<br />
Mijn bericht:
<br />
<textarea name="boodschap" rows="33" cols="63">
</textarea>
<br />
<input type="submit" value="Verstuur bericht" />
</form>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
</script>
<!-- InstanceEndEditable -->

<!-- end .content --></div>
<!-- end .container --></div>
</body>
<!-- InstanceEnd --></html>

Klopt hier mss iets niet dan?
Hi Maria,

Oke,
- zet je code tussen [.code] [./code] (zonder puntjes)dat leest makkelijker
- dit kan je vervangen "http://millamuts.nl/contact.php" door "contact.php"
- jij gebruikt java om de velden te controleren, maar dat is niet handig, want als iemand java uitzet dan wordt niet gecontroleerd
- ga nu naar contact.php, en zet de volgende code in je het begin van je code, en even testen en kijk of je de juist gegevens binnen krijgt

<?php
echo $_POST['naam'] . "<br>";
echo $_POST['email'] . "<br>";
echo $_POST['boodschap'] . "<br>";
?>




heb alles gedaan zoals beschreven. lukt nog steeds niet. mss ligt het toch wel aan het php bestand??

<p><?php
echo $_POST['naam'] . "<br>";
echo $_POST['email'] . "<br>";
echo $_POST['boodschap'] . "<br>";
?><p>

</p><?php

$to = "[email protected]";
$subject = "Aanvraag van " . $_POST["naam"] . " (" . $_POST["email"] . ")";
$message = $_POST["boodschap"];
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$headers = "From: Website <amptarnow@$gmail.com>\r\n";

if (mail($to, $subject, $message, $headers))
{
echo "Mail verzonden";
}
else
{
echo "Er is iets mis gegaan";
}

?></p>

Reageren