public static function do_register_action() { self::method('post'); try { $checker = new lazy_checker(p()); $checker->check('name', array('change_to' => 'string', 'cannot_be' => array('', '用户名不能为空'), 'char_size' => array(3, user_model::name_len, '用户名的长度为%d-%d个字符'), 'callback' => function ($name) { if (user_model::get_one(array('name' => $name)) !== null) { return '该用户已被注册'; } })); $checker->check('pass', array('change_to' => 'string', 'cannot_be' => array('', '密码不能为空'), 'char_size' => array(6, -1, '密码长度必须大于等于%d个字符'))); if (p_str('re_pass') !== $checker->pass) { $checker->failed('pass', '两次输入的密码不一致'); } $salt = random_sha1(); $pass = user_model::get_crypted_pass($checker->pass, $salt); $user = array('name' => $checker->name, 'pass' => $pass, 'salt' => $salt, 'register_time' => clock::get_stamp()); $user_id = user_model::add($user); visitor::set_role('user', $user_id, 0, array('name' => $user['name'])); online_service::refresh_online_count(); self::json_result(true, '', 0, url('site/index')); } catch (check_failed $e) { self::json_result(false, $e->get_reasons()); } }
public static function new_action() { // 拦截 self::method('post'); self::role('member'); self::csrf('member'); try { // 校验 $checker = new lazy_checker(p()); $checker->check_model_rules('member', 'new'); // 执行 $member = []; $member['name'] = $checker->name; $salt = random_sha1(); $member['salt'] = $salt; $member['pass'] = member_model::generate_pass($checker->pass, $salt); member_model::add($member); // 成功 self::json_result(true, '用户添加成功。', 0, url('member/index')); } catch (check_failed $e) { // 失败 self::json_result(false, $e->get_reasons()); } }
function random_md5() { return md5(random_sha1()); }
protected static function new_role_secret() { return sha1(config::get_kern('secret_key', '') . random_sha1()); }