email form. aanpassen voor invuller

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hoi,

Ik heb een formulier waar bezoekers een form kunnen invullen , dat vervolgens naar admin gaat.
Is het ook mogelijk de code zo aan te passen dat de invuller ook dit bericht via mail krijgt eventueel met een extra tekst regeltje?

Een gedeelte van de code:


PHP:
$email_message = "Inschrijfgegens  .\r\n";
	
	function clean_string($string) {
	  $bad = array("content-type","bcc:","to:","cc:");
	  return str_replace($bad,"",$string);
	}
	
	$email_message .= "Full Name: ".clean_string($full_name)."\r\n";
	$email_message .= "Email: ".clean_string($email_from)."\r\n";
	$email_message .= "Telephone: ".clean_string($telephone)."\r\n";
	$email_message .= "Message: ".clean_string($comments)."\r\n";
	
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou");
?>
 
Ja, dat is vrij simpel mogelijk. Plak er nog een regel achter als deze:

PHP:
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou");

Dan verzend hij gewoon nog een mailtje, alleen moet je dan de variabelen even aanpassen aan degene die je wil emailen.
 
Dan verzend hij gewoon nog een mailtje, alleen moet je dan de variabelen even aanpassen aan degene die je wil emailen.

Bedankt, maar degene die het form invult is degene waar mail (ook) naar toe moet.
Nu gaat die alleen naar de admin van form:

PHP:
$email_to = "xxxxxxx.nl";
 
Laatst bewerkt:
Ja, dat snap ik.

Maar de email van degene die het form invult word denk ik ook opgeslagen in een variabele? Want dan kun je die gewoon gebruiken ip email_to.
 
Heb je zelf php kennis? Want de mail die naar de admin bevat denk ik ook de email van degene die het form heeft ingevuld.

Dit is een variabele, dus iets in de zin van $email_van_invuller, kun je nakijken wat deze is?
 
Ik heb wel wat kennis, maar niet veel.
de var die jij bedoelt zal $email_from zijn.
Ik wil dus dat de invuller ook een copie krijgt van wat hij ingevuld heeft, nu alleen naar de admin $email_to

afhandelingsform

PHP:
if(isset($_POST['Email_Address'])) {
	
	include 'freecontactformsettings.php';
	
	function died($error) {
		echo "Er zijn tijden het invullen de volgende fouten gevonden:<br /><br /> ";
		//echo "These errors appear below.<br /><br />";
		echo $error."<br /><br />";
		echo "Ga terug en vul de gevraagde gegevens correct in.<br /><br />";
		die();
	}
	
	if(!isset($_POST['Full_Name']) ||
		!isset($_POST['Email_Address']) ||
		!isset($_POST['Telephone_Number']) ||
		!isset($_POST['Your_Message']) || 
		!isset($_POST['AntiSpam'])		
		) {
		died('Sorry, there appears to be a problem with your form submission.');		
	}
	
	$full_name = $_POST['Full_Name']; // required
	$email_from = $_POST['Email_Address']; // required
	$telephone = $_POST['Telephone_Number']; // not required
	$comments = $_POST['Your_Message']; // required
	$antispam = $_POST['AntiSpam']; // required
	
	$error_message = "";
	
	$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(preg_match($email_exp,$email_from)==0) {
  	$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
  if(strlen($full_name) < 2) {
  	$error_message .= 'Your Name does not appear to be valid.<br />';
  }
  //if(strlen($comments) < 2) {
//  	$error_message .= 'The Comments you entered do not appear to be valid.<br />';
//  }
//  
  if($antispam <> $antispam_answer) {
	$error_message .= 'The Anti-Spam vraag is niet goed ingevuld.<br />';
  }
  
  if(strlen($error_message) > 0) {
  	died($error_message);
  }
	$email_message = "Inschrijfgegevens Classic Car Ride 4 aug. 2013.\r\n";
	
	function clean_string($string) {
	  $bad = array("content-type","bcc:","to:","cc:");
	  return str_replace($bad,"",$string);
	}
	
	$email_message .= "Naam: ".clean_string($full_name)."\r\n";
	$email_message .= "E-mail: ".clean_string($email_from)."\r\n";
	$email_message .= "Telefoon: ".clean_string($telephone)."\r\n";
	$email_message .= "Bericht: ".clean_string($comments)."\r\n";
	
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou");
?>
<script>location.replace('<?php echo $thankyou;?>')</script>
<?php
}
die();
?>


Het include gedeelte van de 2e regel hierboven in code bevat:


PHP:
$email_to = "admin@home.nl"; // your email address
$email_subject = "Inschrijven"; // email subject line
$thankyou = "bedankt.html"; // thank you page
 
Laatst bewerkt:
Ik denk dat je $email_from moet hebben.

Dus dan krijg je onder je al bestaande mail syntax. (uit je eerste post)

Nog een regel erbij:

PHP:
$email_admin = 'admin@home.nl';
$headers = 'From: '.$email_admin."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou");

Werkt het zo?
 
Bedankt maar admin krijgt al een mail en adres is ook bekend, het email adres wat de invuller invult moet worden "opgepikt" en ook naar dit adres van invuller verzonden worden.

Nou krijg ik 2 mails naar de admin
 
Ja dat snap ik, dat doet dit script ook als het goed is.

Kijk: email_from bevat als het goed is de email van de invuller, een bericht word aan het einde verzonden naar admin en naar de invuller. Het script wat ik net heb gepost plak je onder je al bestaande mail regel.
 
Ik zal straks wel even het script herschrijven, maar met basis php kennis moet je dat zelf ook wel lukken hoor.
 
geef a.u.b eens aan waar je de code precies wilt hebben toegevoegd

deze komt al voor

PHP:
$email_to = "admin@home.nl";
 
Ja klopt, dat is de email van je admin.
Maar variable $email_from bestaat ook.

Uit het script van je beginpost haal ik dit stukje:

PHP:
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);

Hieronder plak je dit:

PHP:
$email_admin = 'admin@home.nl';
$headerstwee = 'From: '.$email_admin."\r\n".
'Reply-To: '.$email_admin."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_from, $email_subject, $email_message, $headerstwee);
header("Location: $thankyou");

Dan krijg je in totaal dus dit:

PHP:
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
$email_admin = 'admin@home.nl';
$headerstwee = 'From: '.$email_admin."\r\n".
'Reply-To: '.$email_admin."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_from, $email_subject, $email_message, $headerstwee);
header("Location: $thankyou");

Als je dus het gedeelte waar je het script van je beginpost vandaan hebt vervangt door bovenstaand stuurt hij twee mailtjes, naar de admin en naar degene die het form invult.
 
Ok,, had ik zo gedaan maar ik krijg als invuller nog steeds geen e-mail.

deze is toch al bekend?
$email_admin = 'admin@home.nl';
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan