PHP mail functie: fout in script

Status
Niet open voor verdere reacties.

georgeboot

Gebruiker
Lid geworden
3 jan 2007
Berichten
70
Hallo mensen,

Ik heb een mailscript, maar het werkt niet. Als ik het zo bekijk, zou het moeten werken... Misschien dat andere mensen wel een fout zien? Als ik het script uitvoer, krijg ik GEEN foutmeldingen etc.
Alvast bedankt!

PHP:
<?

if (IsSet($_POST['submit'])) 
{ 
    $naam_ontvanger = $_POST['Kwekerij Muilwijk']; 
    $email_ontvanger = $_POST['mailto']; 

    $naam_verzender = $_POST['name']; 
    $email_verzender = $_POST['mail']; 

    $onderwerp = $_POST['subject']; 
    $bericht_verzender = $_POST['body']; 


    $headers = "From: ".$naam_verzender." <".$email_verzender.">\r\n"; 

    $bericht = " 
Beste ".$naam_ontvanger.", 

".$naam_verzender." heeft jou een berichtje gestuurd. Hieronder is zijn berichtje te lezen. 

--------bericht-------- 
".$bericht_verzender." 
--------bericht-------- 

mvg, 
Jmuilwijk.nl 
    "; 

    mail($email_ontvanger, $onderwerp, $bericht, $headers); 
	echo "Uw bericht is succesvol verzonden! Wij nemen zo snel mogelijk contact met u op.";
} 
else{?>
<h1>contact</h1>
<form action="?p=contact" method="post">
<fieldset>
<legend>Vul hier de informatie voor uw vraag in</legend>
<table>
	<tr>
		<td>Naam:</td>
		<td><input type="text" name="name"></td>
	</tr>
	<tr>
		<td>E-mail:</td>
		<td><input type="text" name="mail"></td>
	</tr>
	<tr>
		<td>Onderwerp:</td>
		<td><input type="text" name="subject"></td>
	</tr>
	<tr>
		<td>Bericht::</td>
		<td><textarea name="body" cols="50" rows="8"></textarea></td>
	</tr>
	<input type="hidden" name="mailto" value="mailadres@waar.het.heen.moet">
	<tr>
		<td></td>
		<td><input type="submit" value="Verstuur"><input name="Formulier wissen" type="reset" id="Formulier wissen"></td>
</table>
</fieldset>
</form>
<? } ?>
 
Als ik het zo bekijk bestaat $_POST['submit'] niet dus zal je IF-statement altijd false opleveren.

Een hidden-element met het mailadres van de site heeft ook weinig zin. Die kun je net zo goed in je code verwerken.

Verder zijn functies van PHP nooit met hoofdletters. (IsSet)
Sowieso is het beter om een verzonden formulier te controleren met
PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// formulier verzonden
} else {
// Niet verzonden
}

Probeer dit eens:
PHP:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $naam_ontvanger = 'Kwekerij Muilberg';
    $email_ontvanger = 'mailadres@domein.nl'; // Zelf invullen
 
    $naam_verzender = $_POST['name']; 
    $email_verzender = $_POST['mail']; 
 
    $onderwerp = $_POST['subject']; 
    $bericht_verzender = $_POST['body']; 
 
 
    $headers = "From: ".$naam_verzender." <".$email_verzender.">\r\n"; 
 
    $bericht = " 
Beste ".$naam_ontvanger.", 
 
".$naam_verzender." heeft jou een berichtje gestuurd. Hieronder is zijn berichtje te lezen. 
 
--------bericht-------- 
".$bericht_verzender." 
--------bericht-------- 
 
mvg, 
Jmuilwijk.nl 
    "; 
 
    mail($email_ontvanger, $onderwerp, $bericht, $headers); 
    echo "Uw bericht is succesvol verzonden! Wij nemen zo snel mogelijk contact met u op.";
} 
else{?>
<h1>contact</h1>
<form action="" method="post">
<fieldset>
<legend>Vul hier de informatie voor uw vraag in</legend>
<table>
    <tr>
        <td>Naam:</td>
        <td><input type="text" name="name"></td>
    </tr>
    <tr>
        <td>E-mail:</td>
        <td><input type="text" name="mail"></td>
    </tr>
    <tr>
        <td>Onderwerp:</td>
        <td><input type="text" name="subject"></td>
    </tr>
    <tr>
        <td>Bericht::</td>
        <td><textarea name="body" cols="50" rows="8"></textarea></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" value="Verstuur"><input name="reset" type="reset" id="Formulier wissen"></td>
</table>
</fieldset>
</form>
<? } ?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan