Ik heb een formulier...dat wordt na op 'verstuur' te hebben gedrukt netjes wordt verzonden.

Echter eenmaal in mijn inbox is de afzender niet het emailadres dat op het formulier is ingevuld maar een adres dat te maken heeft met de host(?!).

Nu heb ik inmiddels de $_POST["email"] genoemd in de email-tekst...dus kan er worden gereageerd. Maar het is natuurlijk de bedoeling dat je in een emailprogramma of webmail kunt zeggen 'beantwoorden'.

Als je dit nu zou doen...stuur je een email aan een gek emailadres van de host...en dus moet je momenteel het emailadres dat wordt genoemd in de tekst kopieeren en plakken.

Weet iemand hoe dit komt? Zie hieronder de gebruikte PHP:

<?php
function valid_mail ($str) {
 return  (ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)', $str));
}
function valid_name ($str) {
 return  (ereg ('^[A-Za-z. -]+$', $str));
}

$_POST["naam"] = ucfirst($_POST["naam"]);

if ($_POST["verzendbutton"] != "Verstuur" || !valid_name($_POST["naam"]) || !valid_mail($_POST["email"]) || !$_POST["bericht"]) { 
// dus als het formulier leeg is of een van de waarden niet is ingevuld

$verzendbutton		= $_POST["verzendbutton"];
$naam			= $_POST["naam"];
$adres			= $_POST["adres"];
$postcode_plaats	= $_POST["postcode_plaats"];
$email			= $_POST["email"];
$telefoon			= $_POST["telefoon"];
$bericht			= $_POST["bericht"];
?>
	
<form method="post" id="formulier" onsubmit="return check(this)" action="<?php $_SERVER["PHP_SELF"]; ?>">     

<fieldset>

<div style="text-align:right;padding:0 68px 10px 0;">Velden met een * zijn verplicht</div>

   	<label>Bedrijfs naam:</label><input type="text" name="bedrijfsnaam" value="<?php echo $bedrijfsnaam ?>" size="25" maxlength="50" tabindex="1" />
   
   	<br /><br />

<?php
	if ($_POST["verzendbutton"] && !valid_name($_POST["naam"])) {
		echo "<h4 class=\"error\">Vul a.u.b. uw naam in</h4><br />";
}
?>
	<label>Naam:*</label><input type="text" name="naam" value="<?php echo $naam ?>" size="25" maxlength="50" tabindex="2" />
   
   	<br /><br />

<?php
	if ($_POST["verzendbutton"] && !valid_mail($_POST["email"])) {
		echo "<h4 class=\"error\">Vul a.u.b. een correct emailadres in</h4><br />";
}
?>
	<label>email:*</label><input type="text" name="email" value="<?php echo $email ?>" size="25" maxlength="50" tabindex="3" />

   	<br /><br />

   	<label>Adres:</label><input type="text" name="adres" value="<?php echo $adres ?>" size="25" maxlength="60" tabindex="4" />
   
   	<br /><br />
   
   	<label>Postcode / Plaats:</label><input type="text" name="postcode_plaats" value="<?php echo $postcode_plaats ?>" size="7" maxlength="7" tabindex="5" />
   
   	<br /><br />
   
   	<label>Telefoon:</label><input type="text" name="telefoon" value="<?php echo $telefoon ?>" size="10" maxlength="10" tabindex="6" />
   	
   	<br /><br />

<?php
	if ($_POST["verzendbutton"] && !$_POST["bericht"]) {
		echo "<h4 class=\"error\">Laat a.u.b. een bericht achter</h4><br />";
}
?>   
	<label>Uw bericht:*</label><textarea name="bericht" rows="9" cols="30" tabindex="7"></textarea>

   	<br /><br />

   	<label>&nbsp;</label><input type="submit" value="Verstuur" name="verzendbutton" class="button" tabindex="8" />

</fieldset>

</form>
<?php
} else { // in alle andere gevallen (dus formulier verzonden!)
	$boodschap = "Naam: ".$_POST["naam"]."\nBericht: ".$_POST["bericht"]."\nEmailadres :" .$_POST["email"];
	mail($_POST["email"], "Bericht van de website", $boodschap);
	echo "<p class=\"bedankt_tekst\">Bedankt ".$_POST["naam"].",</p>";
	echo "<p class=\"bedankt_tekst\">Desgewenst zal zo spoedig mogelijk contact met u worden opgenomen.</p>";
	}
?>


Zie het echt eventjes niet meer...
Mmhh...oke...'Headers'...voeg ik die dan toe boven regel 78 in mijn voorbeeld code hierboven?




De 'headers' is de 4e parameter van mail().
Dus als volgt:

 $boodschap = "Naam: ".$_POST["naam"]."\nBericht: ".$_POST["bericht"]."\nEmailadres :" .$_POST["email"];
    mail($_POST["email"], "Bericht van de website", $boodschap, $headers);


...en dan de PHP van de PHP Wiki pagina erboven?



Ja. Controleer wel alle input van de gebruiker op correctheid i.v.m. email-injection.
Ik ben eruit denk ik...! Thanks!

Nu nog even focus op de controle van alle invoer inderdaad...momenteel worden alleen de verplichte velden gecontroleerd.

Gaat het zover wel goed dan? Qua controle van invoer...?
OEPS!

Het gaat toch niet helemaal goed...

// De naam van de verzender
$naam_verzender = 'Afzender';
// Het geldige emailadres van de afzender
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';


Als ik dit aanpas in het volgende:
// De naam van de verzender
$naam_verzender = $_POST["naam"];
// Het geldige emailadres van de afzender
$email_verzender =  $_POST["email"];


dan werkt het niet echt...

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.


Dan is je naam of verzender niet kloppend. Of zit je toevallig op een Windhoos host?
Oh ja...bumpen...Excuus!

Chris...als ik $_POST["email"]; doe...en 'email' is de naam van het veld waar de afzender een emailadres invult...waarom is dit dan niet goed?

Met deze $_POST["email"]; kan ik wel het emailadres van de afzender presenteren in de verzonden email...deze is dus bekend en oke.

Ik snap dit echt niet..?!

Reageren