示例#1
0
<?php

define('DEBUG', false);
define('SERVER_NAME', 'Shivas');
define('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']);
define('DB_HOST', 'localhost');
define('DB_NAME', 'shivas');
define('DB_USER', 'root');
define('DB_PASSWD', '');
define('DB_INSERT_QUERY', 'INSERT INTO accounts(name, password, salt, nickname, question, answer) VALUES(:name, :password, :salt, :nickname, :question, :answer);');
require_once "common.lib.php";
$success = false;
$fields = get_fields(array('name', 'password', 'nickname', 'question', 'answer'), $_POST);
$validators = array('name' => Validators::with($required)->plus($length_between, 4, 15)->build(), 'password' => Validators::with($required)->plus($min_length, 4)->build(), 'nickname' => Validators::with($required)->plus($min_length, 4)->build(), 'question' => Validators::with($required)->plus($min_length, 4)->build(), 'answer' => Validators::with($required)->plus($min_length, 4)->build());
$errors = is_method('POST') ? get_errors($validators, $fields) : array();
if (is_method('POST') && ($success = count($errors) <= 0)) {
    $fields['salt'] = random_string(32);
    $fields['password'] = shivas_encrypt($fields['password'], $fields['salt']);
    try {
        $db = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASSWD);
        $db->prepare(DB_INSERT_QUERY)->execute($fields);
    } catch (Exception $e) {
        $success = false;
        $errors['global'] = array($e->getMessage());
    }
}
include "signup.view.php";