Hallo allemaal,

Ik heb op basis van een aangekocht ontwerp mijn eigen website gebouwd incl. een aanmeldformulier met php verwerking. Het werkt allemaal, heel fijn.

Nu is zo dat degene die aanmeld een bevestiging ziet op de webpagina en de gegevens worden gestuurd naar mijn mailadres. Dat moet ook zo blijven. Ik zou alleen extra willen dat degene die zich inschrijft automatisch ook een email krijgt met daarin bevestigd dat hij/zij zich heeft aangemeld.

Welke codering kan ik toevoegen? En waar moet ik dat doen?
Ik ben al maanden aan het zoeken hier op het forum en op de rest van het internet maar ik kom er niet uit.
Super bedankt alvast voor jullie reactie.

NB: het daadwerkelijke formulier staat in de html van de website en dus niet in dit php bestand.


<?php
// Your Email
$recipient = "MIJN EMAILADRES"; //

// Check $recipient
if($recipient === '') {
returnAndExitAjaxResponse(
constructAjaxResponseArray(
FALSE,
'RECIPIENT_IS_NOT_SET',
array('error_message'=> 'RECIPIENT email address is not set. Please configure the script.')
)
);
}

// Check for empty required field
if(!isset($_POST["email"]) ||!isset($_POST["emailp"]) || !isset($_POST["fname"]) || !isset($_POST["lname"]) ||!isset($_POST["adres"]) || !isset($_POST["place"]) || !isset($_POST["phonenumber"]) ||!isset($_POST["message"])) {
returnAndExitAjaxResponse(
constructAjaxResponseArray(
FALSE,
'MISSING_REQUIRED_FIELDS',
array('error_message'=> 'MISSING_REQUIRED_FIELDS should not be occurred.')
)
);
}

// Sanitize input
$fname = filter_var($_POST["fname"], FILTER_SANITIZE_STRING);
$lname = filter_var($_POST["lname"], FILTER_SANITIZE_EMAIL);
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$emailp = filter_var(trim($_POST["emailp"]), FILTER_SANITIZE_EMAIL);
$adres = filter_var(trim($_POST["adres"]), FILTER_SANITIZE_EMAIL);
$place = filter_var(trim($_POST["place"]), FILTER_SANITIZE_EMAIL);
$phonenumber = filter_var(trim($_POST["phonenumber"]), FILTER_SANITIZE_EMAIL);
$training = filter_var(trim($_POST["training"]), FILTER_SANITIZE_EMAIL);
$niveau = filter_var(trim($_POST["niveau"]), FILTER_SANITIZE_EMAIL);
$age = filter_var(trim($_POST["age"]), FILTER_SANITIZE_EMAIL);
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);


// If non required fields are empty
if ( empty($training) ){
$training = "Kies gewenste training.";
}
if ( empty($niveau) ){
$niveau = "Selecteer niveau.";
}
if ( empty($age) ){
$age = "Geen leeftijd aangegeven.";
}

// Headers
$headers = 'From: '.$fname.' <'.$email.'>' . "\r\n";
$headers .= 'Reply-To: '.$email.'' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();



// Subject
$subject = "Nieuwe aanmelding via contactformulier";

// Build Message
$email_content = "Voornaam: $fname\n";
$email_content .= "Achternaam: $lname\n";
$email_content .= "Email: $email\n";
$email_content .= "Email ouders/verzorgers: $emailp\n\n";
$email_content .= "Adres: $adres\n\n";
$email_content .= "Woonplaats: $place\n\n";
$email_content .= "Telefoonnummer: $phonenumber\n\n";
$email_content .= "Leeftijd: $age\n\n";
$email_content .= "Training: $training\n\n";
$email_content .= "Niveau: $niveau\n\n";
$email_content .= "Bericht:\n$message\n\n\n";

// Check if sent
try {
$sendmailResult = mail($recipient, $subject, $email_content, $headers);
if( $sendmailResult === TRUE ) {
returnAndExitAjaxResponse(
constructAjaxResponseArray(
TRUE
)
);
} else {
returnAndExitAjaxResponse(
constructAjaxResponseArray(
FALSE,
'ERROR_AT_PHPMAIL',
array('error_information'=> error_get_last() )
)
);
}
} catch (Exception $_e) {
returnAndExitAjaxResponse(
constructAjaxResponseArray(
TRUE,
'ERROR_AT_PHPMAIL',
array('error_message'=> $_e->getMessage())
)
);
}

/*
Construct ajax response array
Input: Result (bool), Message (optional), Data to be sent back in array
*/
function constructAjaxResponseArray ($_response, $_message = '', $_json = null) {
$_responseArray = array();
$_response = ( $_response === TRUE ) ? TRUE : FALSE;
$_responseArray['response'] = $_response;
if(isset($_message)) $_responseArray['message'] = $_message;
if(isset($_json)) $_responseArray['json'] = $_json;

return $_responseArray;
}
/*
Returns in the Gframe ajax format.
Input: data array processed by constructAjaxResponseArray ()
Outputs as a html stream then exits.
*/
function returnAndExitAjaxResponse ($_ajaxResponse) {
if(!$_ajaxResponse){
$_ajaxResponse = array('response'=>false,'message'=>'Unknown error occurred.');
}
header("Content-Type: application/json; charset=utf-8");
echo json_encode($_ajaxResponse);
die();
}


// Function to get the client IP address
function get_client_ip() {
$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
} else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
} else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_FORWARDED'])) {
$ipaddress = $_SERVER['HTTP_FORWARDED'];
} else if(isset($_SERVER['REMOTE_ADDR'])) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
} else {
$ipaddress = 'UNKNOWN';
}
return $ipaddress;
}

?>
Bij BCC zie je wel waar het bericht oorspronkelijk naartoe ging ($recipient) toch? Lijkt mij niet zo handig als dit een intern/privé e-mailadres is.

Als dit geen probleem is ($recipient is een publiek/algemeen contactadres) dan is het toevoegen van een BCC-regel (een van de) de eenvoudigste oplossing(en) met een minimale impact op de rest van de code.

Anders kun je misschien beter een apart mailtje opstellen, eventueel met aanvullende tekst ("Wij hebben de volgende informatie van u ontvangen..." o.i.d.).
Bedankt voor de reacties. Ik ga proberen of ik er zo uitkom.
BCC is Blind Carbon Copy. Niemand zal dan zien wie nog meer de e-mail zal krijgen.
het is wel verstandig om de mail dan als 'to:' te versturen naar je eigen, en niet naar de eerste van de lijst. Het zou jammer zijn/haar mailadres op straat ligt.

Onthoud ook dat de mails dan identiek zullen zijn. Voor een gepersonaliseerde mail (Beste dhr. / mevr. xxxx) is (B)CC niet geschikt. Dan moet je de mail per stuk verzenden.
Mocht ik wel een ander bericht per mail willen sturen. Bijv. Bedankt voor je aanmelding, we nemen zo snel mogelijk contact met je op, kan dat dan ook met dit php-script en automatisch naar iedere aanmelder individueel? Zo ja, wat moet ik daarvoor doen (toevoegen of maken?)
Kan ik die codering toevoegen in mijn php bestand of moet ik een aparte php maken?
Dat script bedoel je?
Dat kan je gewoon onder het andere mailscript van lijn 77 zetten.

Script idd. Ik ben nogal een leek ????
Ik ga er mee aan de slag! Thnx
Hopelijk lukt het, geef anders even een gil.

Reageren