}
        }
    } elseif (!isset($store[$config['_mandatory']])) {
        $store[$config['_mandatory']] = "__ERROR__ ";
        ++$missing;
    }
}
if ($missing || isset($_cancel)) {
    write_errors($config['_html_return'], $store);
    // show confirm page
} elseif (!empty($config['_html_confirm'])) {
    parse_html($config['_html_confirm'], $store);
    // perform all actions
} else {
    if ($config['_mail_to']) {
        write_mail();
    }
    if ($config['_save_csv']) {
        write_csv($config['_csv_directory'] . '/' . $config['_save_csv'] . '.csv');
    }
    if ($config['_save_database']) {
        write_database($config['_save_database']);
    }
    if ($config['_mail_confirm']) {
        write_receipt();
    }
    if (empty($config['_html_thanks'])) {
        parse_html($config['_html_return'], $store);
    } else {
        parse_html($config['_html_thanks'], $store);
    }
<?php

require "../settings.php";
# decide what to do
if (isset($_POST["key"])) {
    switch ($_POST["key"]) {
        case "confirm":
            $OUTPUT = con_mail($_POST);
            break;
        case "write":
            $OUTPUT = write_mail($_POST);
            break;
        default:
            $OUTPUT = get_mail();
    }
} else {
    $OUTPUT = get_mail();
}
# display output
require "../template.php";
# enter new data
function get_mail()
{
    global $_POST;
    extract($_POST);
    if (!isset($email)) {
        $email = "";
        $msg = "";
    }
    /*//db_conn(YR_DB);
    	// DataBase
Example #3
0
$app = new Slim(array('templates.path' => './templates'));
$app->add(new Slim_Middleware_SessionCookie(array('expires' => '20 minutes', 'path' => '/', 'domain' => null, 'secure' => false, 'httponly' => false, 'name' => 'slim_session', 'secret' => 'CHANGE_ME', 'cipher' => MCRYPT_RIJNDAEL_256, 'cipher_mode' => MCRYPT_MODE_CBC)));
$app->get('/', function () use($app) {
    $app->render('_head.inc');
    $app->render('landing.php', array('default_amount' => DEFAULT_AMOUNT));
    $app->render('_footer.inc');
});
$app->post('/pirate', function () use($app) {
    $pirate = $app->request()->params();
    $pirate["status"] = "pending";
    // @TODO: append messages somehow. Now only first error is returned.
    if (!valid($app, 'initials', FALSE, '', 'Voorletters zijn vereist') || !valid($app, 'name', FALSE, '', 'Naam is vereist') || !valid($app, 'email', FALSE, '/.+@.+\\..+/', 'E-mailadres is niet correct') || !valid($app, 'address', FALSE, '', 'Adres is vereist') || !valid($app, 'city', FALSE, '', 'Stad is vereist')) {
        $app->redirect("/");
    }
    $pirate = write_pirate($pirate);
    write_mail($pirate);
    // @TODO: if pirate['id'] is not set, writing to database failed. Redirect to error in that case.
    //Prepare form for payment
    $ideal = new Ideal(MERCHANT_ID, SUB_ID, HASH_KEY, AQUIRER_NAME, AQUIRER_URL);
    $ideal->order_id = $pirate["id"];
    $ideal->amount = (double) DEFAULT_AMOUNT;
    $ideal->order_description = "Piratenpartij lidmaatschap";
    $base = $app->request()->getUrl();
    $ideal->url_cancel = "{$base}/error";
    $ideal->url_success = "{$base}/success";
    // render form.
    $app->render('_head.inc');
    $app->render('pirate.php', array('hidden_form' => $ideal->hidden_form(), 'url' => IDEAL_URL));
    $app->render('_footer.inc');
});
$app->get('/success', function () use($app) {