コード例 #1
0
ファイル: form.php プロジェクト: dalinhuang/zotop
 public static function globalid()
 {
     $globalid = zotop::cookie('file.globalid');
     if (empty($globalid)) {
         $globalid = TIME . rand(100, 10000);
         $globalid = md5($globalid);
         zotop::cookie('file.globalid', $globalid);
     }
     return $globalid;
 }
コード例 #2
0
ファイル: login.php プロジェクト: dalinhuang/zotop
 public function indexAction()
 {
     $user = zotop::model('zotop.user');
     if (form::isPostBack()) {
         $post = array();
         $post['username'] = request::post('username');
         $post['password'] = request::post('password');
         $post['logintime'] = time();
         zotop::cookie('admin.username', $post['username'], 3600);
         if (empty($post['username'])) {
             msg::error(zotop::t('登陆失败,请输入登陆账户名称'));
         }
         if (empty($post['password'])) {
             msg::error(zotop::t('登陆失败,请输入登陆账户密码'));
         }
         if (!$user->isValidUserName($post['username'])) {
             msg::error(zotop::t('登陆失败,请输入有效的账户名称'));
         }
         if (!$user->isValidPassword($post['password'])) {
             msg::error(zotop::t('登陆失败,请输入有效的账户密码'));
         }
         //读取用户
         $data = $user->read(array('username', '=', $post['username']));
         //验证
         if ($data == false) {
             msg::error(zotop::t('账户名称`{$username}`不存在,请检查是否输入有误!', array('username' => $post['username'])));
         }
         if ($user->password($post['password']) != $data['password']) {
             msg::error(zotop::t('账户密码`{$password}`错误,请检查是否输入有误!', array('password' => $post['password'])));
         }
         //用户登入
         $user->login();
         //跳转
         msg::success('登陆成功,系统正在加载中', url::current(), 2);
     }
     if (!empty($this->user)) {
         $this->redirect('zotop/index');
     }
     $data = $user->read(array('username', '=', 'admin'));
     $page = new page();
     $page->title = '系统登陆';
     $page->body = array('class' => 'login');
     $page->addScript('$this/js/login.js');
     $page->display();
 }
コード例 #3
0
ファイル: login.php プロジェクト: dalinhuang/zotop
 public function onDefault()
 {
     if (form::isPostBack()) {
         $post = array();
         $post['username'] = request::post('username');
         $post['password'] = request::post('password');
         $post['logintime'] = time();
         zotop::cookie('admin.username', $post['username'], 3600);
         if (empty($post['username'])) {
             msg::error('登陆失败', zotop::t('请输入登陆账户名称'));
         }
         if (empty($post['password'])) {
             msg::error('登陆失败', zotop::t('请输入登陆账户密码'));
         }
         $user = zotop::model('zotop.user');
         $data = $user->read(array('username', '=', $post['username']));
         if ($data == false) {
             msg::error('登陆失败', zotop::t('账户名称`{$username}`不存在,请检查是否输入有误!', array('username' => $post['username'])));
         }
         if ($user->password($post['password']) != $data['password']) {
             msg::error('登陆失败', zotop::t('账户密码`{$password}`错误,请检查是否输入有误!', array('password' => $post['password'])));
         }
         //更新
         $user->refresh();
         //登陆成功
         zotop::user($data);
         msg::success('登陆成功', '登陆成功,系统正在加载中', 'reload', 2);
     }
     if (zotop::user()) {
         zotop::redirect('zotop/index');
     }
     $header['title'] = '用户登录';
     $header['js'] = url::module() . '/admin/js/login.js';
     $header['body']['class'] = "login";
     page::header($header);
     block::header(array('id' => 'LoginWindow', 'title' => '用户登录'));
     form::header(array('title' => '', 'description' => '请输入用户名和密码', 'class' => 'small'));
     form::field(array('type' => 'text', 'label' => zotop::t('帐 户(U)'), 'name' => 'username', 'value' => zotop::cookie('admin.username'), 'valid' => 'required:true'));
     form::field(array('type' => 'password', 'label' => zotop::t('密 码(P)'), 'name' => 'password', 'value' => '', 'valid' => 'required:true'));
     form::buttons(array('type' => 'submit', 'value' => '登 陆'), array('type' => 'button', 'name' => 'options', 'value' => '选 项'));
     form::footer();
     block::footer();
     page::footer();
 }
コード例 #4
0
ファイル: database.php プロジェクト: dalinhuang/zotop
 /**
  * 返回limit限制的数据,用于带分页的查询数据
  *
  * @param $page int 页码
  * @param $pagesize int 每页显示条数
  * @param $num int|bool 总条数|缓存查询条数,$toal = (false||0) 不缓存查询
  * @return mixed
  */
 public function getPage($page = 0, $pagesize = 15, $num = false)
 {
     $page = $page <= 0 ? (int) $_GET['page'] : $page;
     $page = $page <= 0 ? 1 : $page;
     //获取查询参数
     $sqlBuilder = $this->sqlBuilder($sql);
     if (is_numeric($num) && $num > 0) {
         $total = $num;
     } else {
         $hash = md5(serialize($sqlBuilder['where']));
         if ($page == 1 || $num == true || !is_numeric(zotop::cookie($hash))) {
             //获取符合条件数据条数
             $total = $this->count($sqlBuilder['where']);
             zotop::cookie($hash, $total);
         } else {
             $total = zotop::cookie($hash);
         }
     }
     //zotop::dump($this->lastsql());
     //计算$offset
     $offset = intval($page) > 0 ? (intval($page) - 1) * intval($pagesize) : 0;
     //设置limit
     $this->sqlBuilder($sqlBuilder);
     $this->limit($pagesize, $offset);
     //获取指定条件的数据
     $data = $this->getAll();
     return array('data' => (array) $data, 'page' => intval($page), 'pagesize' => intval($pagesize), 'total' => intval($total));
 }
コード例 #5
0
ファイル: zotop.php プロジェクト: dalinhuang/zotop
 /**
  * 读取存储的用户信息
  *
  */
 public static function user($key = '', $application = '')
 {
     $user = array();
     $application = empty($application) ? APP_NAME : $application;
     $cookieName = 'zotop.user.' . $application;
     if (empty($user)) {
         $user = zotop::cookie($cookieName);
         $user = is_array($user) ? array_change_key_case($user) : array();
     }
     if ($key === null) {
         return zotop::cookie($cookieName, null);
     }
     if (empty($key)) {
         return empty($user) ? false : $user;
     }
     if (is_array($key)) {
         $user = array_merge($user, array_change_key_case($key));
         return zotop::cookie($cookieName, $user);
     }
     $value = $user[strtolower($key)];
     if (isset($value)) {
         return $value;
     }
     return null;
 }
コード例 #6
0
ファイル: zotop.php プロジェクト: dalinhuang/zotop
 public static function user($key = '')
 {
     $user = array();
     if (empty($user)) {
         $user = zotop::cookie('zotop.user');
         $user = is_array($user) ? array_change_key_case($user) : array();
     }
     if ($key === null) {
         return zotop::cookie('zotop.user', null);
     }
     if (empty($key)) {
         return empty($user) ? false : $user;
     }
     if (is_array($key)) {
         $user = array_merge($user, array_change_key_case($key));
         return zotop::cookie('zotop.user', $user);
     }
     $value = $user[strtolower($key)];
     if (isset($value)) {
         return $value;
     }
     return null;
 }
コード例 #7
0
ファイル: user.php プロジェクト: dalinhuang/zotop
 /**
  * 写入登陆信息
  *
  */
 public function login($data = array())
 {
     $username = $data['username'];
     $password = $data['password'];
     if (empty($username)) {
         $this->error(zotop::t('请输入登陆账户名称'));
         return false;
     }
     if (empty($password)) {
         $this->error(zotop::t('请输入登陆账户密码'));
         return false;
     }
     if (!$this->isValidUserName($username)) {
         $this->error(zotop::t('请输入有效的账户名称'));
         return false;
     }
     if (!$this->isValidPassword($password)) {
         $this->error(zotop::t('请输入有效的账户密码'));
         return false;
     }
     //检查账户是否存在
     if (!$this->isExist(array('username', '=', $username))) {
         $this->error(zotop::t('账户`{$username}`不存在,请检查是否输入有误!', $data));
         return false;
     }
     //加密密码
     $password = $this->password($password);
     //读取用户
     $user = $this->db()->where(array('username', '=', $username))->where(array('password', '=', $password))->getRow();
     //验证
     if ($user == false) {
         $this->error(zotop::t('账户密码`{$password}`错误,请检查是否输入有误!', $data));
         return false;
     }
     //刷新信息
     $this->refresh($user['id']);
     //记录用户数据
     zotop::user($user);
     zotop::cookie('username', $username, 3600);
     zotop::log('login', zotop::t('用户 <b>{$username}</b> 于 {$time} 登陆成功', array('username' => $username, 'time' => TIME)));
     return true;
 }
コード例 #8
0
ファイル: index.php プロジェクト: dalinhuang/zotop
		$('button[name=options]').click(function(){
			location.href = "<?php 
echo zotop::url('site://');
?>
";
		});
	});
</script>
<div id="topbar">
	<a href="<?php 
echo zotop::url('site://');
?>
">网站首页</a>
	<b>|</b>
	<a href="javascript:void(0);" class="addFavorite">加入收藏夹</a>
	<b>|</b>
	<a href="<?php 
echo zotop::url('zotop/login/shortcut', array('title' => url::encode($title), 'url' => url::encode(url::location())));
?>
">设为桌面图标</a>		
</div>

<?php 
box::header(array('title' => $title, 'icon' => 'user', 'action' => ''));
form::header(array('title' => '', 'description' => '请输入您的帐户和密码登录', 'class' => 'small'));
form::field(array('type' => 'text', 'label' => zotop::t('帐 户'), 'name' => 'username', 'value' => zotop::cookie('username'), 'valid' => 'required:true'));
form::field(array('type' => 'password', 'label' => zotop::t('密 码'), 'name' => 'password', 'value' => '', 'valid' => 'required:true'));
form::buttons(array('type' => 'submit', 'value' => '登录'), array('type' => 'button', 'name' => 'options', 'value' => '取消'));
form::footer();
box::footer();
$this->footer();