public function testSetArrayOverrideScalar()
 {
     $_GET = array('user' => array('name' => 'John Smith', 'email' => '*****@*****.**'));
     fRequest::set('user[name][first]', 'John');
     $this->assertEquals(array('user' => array('name' => array('first' => 'John'), 'email' => '*****@*****.**')), $_GET);
 }
<?php

$page = 'addcard';
require 'header.php';
if ($user) {
    fSession::destroy();
    fURL::redirect();
}
if (isset($_POST['submit'])) {
    try {
        fRequest::validateCSRFToken($_POST['token']);
        // Strip colons from uid (easier to copy paste from some NFC
        // reader apps).
        fRequest::set('uid', str_replace(':', '', fRequest::get('uid')));
        $validator = new fValidation();
        $validator->addRequiredFields('password', 'email', 'uid');
        $validator->addEmailFields('email');
        $validator->addRegexRule('uid', '#^[0-9a-fA-F]+$#', 'Not in hex format');
        $validator->validate();
        $uid = strtoupper($_POST['uid']);
        if ($uid == '21222324') {
            /* New Visa cards return this, presumably for privacy */
            throw new fValidationException('Non-unique UID. This card cannot be added to the system.');
        }
        // Random IDs are 4 bytes long and start with 0x08
        // http://www.nxp.com/documents/application_note/AN10927.pdf
        if (strlen($uid) === 8 && substr($uid, 0, 2) === "08") {
            throw new fValidationException('ID is randomly generated and will change every time the card is used!');
        }
        if (strlen($uid) === 8 && substr($uid, 0, 2) === "88") {
            throw new fValidationException('Card UID\'s can\'t start with 88');