HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/spire.komma-mediadesign.nl/wwwroot/mvc/controllers/c_newsletter.php
<?php
require DOCUMENT_ROOT . 'mvc/models/form.class.php';

/*
 * Set Data
 */
$this->setData('page_title', 'Newsletter | Media | '.SITE_NAME);

/*
 * Set Breadcrump
 */
$bc = new Breadcrump();
$bc->add('home',SITE_ROOT);
$bc->add('media',SITE_ROOT.'media/news/' . LATEST_NEWSITEM . '/');
$bc->add('newsletter',SITE_ROOT.'media/newsletter/');
$output = $bc->get();
$this->setData('breadcrump', $output);


/* Create Form */

$formName = 'newsletterForm';

$Form = new Form($formName);
$fields = array();

/*
* Create Fields
*/

$Field = new Form_Field('Country');
$Field->setType('countryList');
$Field->addValidation('required');
$fields[] = $Field;

$Field = new Form_Field('First Name');
$Field->addValidation('required');
$fields[] = $Field;

$Field = new Form_Field('Middle Name');
$fields[] = $Field;

$Field = new Form_Field('Last Name');
$Field->addValidation('required');
$fields[] = $Field;

$Field = new Form_Field('E-mail');
$Field->addValidation(array('required','email'));
$fields[] = $Field;

//$Field = new Form_Field('reCAPTCHA');
//$Field->setType('recaptcha');
//$Field->addValidation('recaptcha');
//$fields[] = $Field;


foreach($fields as $Field)
{
    $Field->addClass('resetValue');
    $Field->setFormName($formName);
    $Form->addField($Field);
}

/*
 * check if submitted
 */
if(isset($_POST[$formName . '_firstName']))
{
    // save in session
    foreach($fields as $Field)
    {
        $data = $Field->get();
        $key = $formName . '_' . $data['name'];
        if(isset($_POST[$key])) $_SESSION[$formName][$data['name']] = $_POST[$key];
    }

    if($Form->validate())
    {
        $db = new DatabaseHandler();
        $db->setTableName('media_newsletter');

        $data = array();
        foreach($fields as $Field)
        {
            $info = $Field->get();
            $data[$info['name']] = $_SESSION[$formName][$info['name']];
        }
        $data['timest'] = time();
        $data['x2'] = X2;

        $db->setData($data);
        if($db->insert())
        {
            $_SESSION['success'] = '<p>Thank you for subscribing.</p>';
        }
        else
        {
            $_SESSION['success'] = '<p>Something went wrong, please try again or contact us.</p>';
        }

    }
    $this->redirect(SITE_ROOT . 'media/newsletter/');
}

/*
 * set values
 */
$Form->clearFields();
foreach($fields as $Field)
{
    $Field->defaultValue();
    $Form->addField($Field);
}

/*
 * Submit button
 */
$Form->addSubmit('subscribe');

/*
* Display Form
*/
if(isset($_SESSION['success']))
{
    $this->setData('formTitle','Thank you');
    $this->setData('formDesc','');

    $this->setData('formOutput',$_SESSION['success']);
    unset($_SESSION['success']);
    unset($_SESSION[$formName]);
}
else
{
    $this->setData('formTitle','Subscribe for our newsletter');
    $this->setData('formDesc','');

    $formOutput = $Form->render();
    $this->setData('formOutput',$formOutput);
}

/*
 * Unset errors after displaying
 */
unset($_SESSION[$formName . '_errors']);