Esempio n. 1
0
 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());
     }
 }
Esempio n. 2
0
 public static function logout_action()
 {
     self::csrf('user');
     visitor::del_role('user');
     online_service::refresh_online_count();
     self::redirect_to('site/index');
 }
Esempio n. 3
0
 public static function index_action()
 {
     $boards = board_model::get_all();
     binder::bind($boards, 'many_many', 'user', array('manager', 0));
     self::set('boards', $boards);
     self::set('online_count', online_service::get_online_count());
     self::show_page();
 }