File: D:/HostingSpaces/SBogers36/mecurity-stadsafsluiting.nl/wwwroot/mvc/controllers/c_contact.php
<?php
/**
* c_contact.php
* Created by Komma Mediadesign.
* Author: mike
* Date: 3/7/13
*/
require_once DOCUMENT_ROOT.'mvc/models/mail/m_phpmailer.php';
require_once DOCUMENT_ROOT.'mvc/models/mail/m_mailMessage.php';
$formData = array('aanhef','bedrijfsnaam','naam','email','telefoon','bericht');
if(!isset($_SESSION['contact']))
{
foreach($formData as $field)
{
$_SESSION['contact'][$field] = '';
}
$_SESSION['contact']['aanhef'] = 'dhr';
}
/*
* Check Error Message
*/
if(isset($_SESSION['errorFields']))
{
foreach($_SESSION['errorFields'] as $field)
{
$this->setData($field.'Error',' error');
}
$errorMsg = '<div class="errorBlock">Helaas is het verzenden niet gelukt.<br /><ul>';
foreach($_SESSION['errorMessage'] as $msg)
{
$errorMsg .= '<li>'.$msg.'</li>';
}
$errorMsg .= '</ul></div>';
$this->setData('errorMessage',$errorMsg);
}
/*
* Check Succes message
*/
if(isset($_SESSION['succes']))
{
$this->setData('succesMessage','<div class="succesBlock">'.$_SESSION['succes'].'</div>');
unset($_SESSION['succes']);
}
/*
* Check if we need to send the FORM
*/
if(isset($_POST['aanhef']))
{
foreach($formData as $field)
{
$_SESSION['contact'][$field] = $_POST[$field];
}
$bericht = nl2br($_POST['bericht']);
$required = array('naam','email','telefoon','bericht');
/*
* Validate requiredFields
*/
foreach($required as $field)
{
if(empty($_POST[$field]))
{
$requiredError = TRUE;
$errorFields[] = $field;
}
}
if(isset($requiredError)) $errorMessage[] = 'U dient de velden met een sterretje in te vullen.';
/*
* Validate email
*/
$email = $_POST['email'];
if(!checkmail($email))
{
if(!in_array('email',$errorFields)) $errorFields[] = 'email';
$errorMessage[] = 'U dient een geldig email adres in te vullen.';
}
if(isset($errorFields))
{
$_SESSION['errorFields'] = $errorFields;
$_SESSION['errorMessage'] = $errorMessage;
$this->redirect(SITE_ROOT.'contact/');
}
else{
$naam = ucfirst($_POST['naam']);
$bedrijfsnaam = ucfirst($_POST['bedrijfsnaam']);
$aanhef = ucfirst($_POST['aanhef']);
$email = $_POST['email'];
$telefoon = $_POST['telefoon'];
// Get/Set info
$fromName = 'Mecurity Stadsafsluiting';
$from = 'info@mecurity-stadsafsluiting.nl';
$subject = 'Vraag / Opmerking geplaatst';
// Message
$str = $aanhef.' '.$naam.' van bedrijf: '.$bedrijfsnaam.' met e-mailadres: '.$email.' en telefoonnummer: '.$telefoon.' heeft de volgende vraag gesteld via ons contactformulier:<br /><br />';
$str .= '<p>'.$bericht.'</p>';
$mailMsg = new MailMessage($str, 'John');
$msg = $mailMsg->get();
// Send
$mail = new PHPMailer();
try
{
$mail->AddAddress($from, $naam);
$mail->SetFrom($from, $fromName);
//$mail->AddReplyTo($from, $fromName);
$mail->Subject = $subject;
$mail->MsgHTML($msg);
$mail->Send();
unset($_SESSION['contact']);
unset($_SESSION['errorMessage']);
unset($_SESSION['errorFields']);
$_SESSION['succes'] = 'Bedankt voor je vraag, we zullen hier zo spoedig mogelijk op terug komen.';
$this->redirect(SITE_ROOT.'contact/');
}
catch (phpmailerException $e)
{
return FALSE;
}
}
}
$this->setData('page_title', 'Contact | '.SITE_NAME);
$this->setData('content_view_path', DOCUMENT_ROOT.'mvc/views/v_contact.php');
function checkmail($email) {
// First, we check that there's one @ symbol, and that the lengths are right
if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email)) {
// Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) {
return false;
}
}
if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
return false;
}
}
}
return true;
}