-
创建数据库
:
/*
Navicat MySQL Data Transfer
Source Server
:
本地连接
Source
Server Version : 50617
Source Host
:
localhost:3306
Source Database
: crm
Target Server
Type
: MYSQL
Target Server
Version : 50617
File Encoding
: 65001
Date: 2015-06-29 23:55:28
*/
SET
FOREIGN_KEY_CHECKS=0;
--
----------------------------
-- Table structure for think_users
--
----------------------------
DROP TABLE
IF EXISTS `think_users`;
CREATE TABLE
`think_users` (
`userid` mediumint(8) unsigned NOT NULL
AUTO_INCREMENT COMMENT
'
用户
id',
`companyid` mediumint(8)
unsigned NOT NULL COMMENT
'
公司
id',
`pid` mediumint(8) NOT NULL
COMMENT '
父
id',
`username` char(20) NOT
NULL DEFAULT '' COMMENT
'
用户名
',
`password` char(32) NOT
NULL DEFAULT '' COMMENT
'
密码
',
`nickname` char(20) NOT
NULL DEFAULT '' COMMENT
'
昵称
',
`regdate` int(10) unsigned
NOT NULL COMMENT '
注册时间
',
`lastdate`
int(10) unsigned NOT NULL COMMENT
'
最后一次登录时间
',
`regip` char(15) NOT NULL
DEFAULT '' COMMENT '
注册
ip',
`lastip`
char(15) NOT NULL DEFAULT '' COMMENT
'
最后一次登录
ip',
`loginnum` smallint(5)
unsigned NOT NULL DEFAULT '0' COMMENT
'
登录次数
',
`email` char(32) NOT NULL
DEFAULT '' COMMENT '
邮箱
',
`mobile`
char(11) NOT NULL DEFAULT '' COMMENT
'
手机号码
',
`islock` tinyint(1)
unsigned NOT NULL DEFAULT '0' COMMENT
'
是否锁定
',
`vip` tinyint(1) unsigned
NOT NULL DEFAULT '0' COMMENT
'
是否会员
',
`overduedate` int(10)
unsigned NOT NULL COMMENT
'
账户过期时间
',
`status` tinyint(1)
unsigned NOT NULL DEFAULT '0' COMMENT '
状态
-
用于软删除
',
PRIMARY KEY
(`userid`),
UNIQUE KEY `username` (`username`)
USING BTREE,
KEY `email` (`email`) USING BTREE
) ENGINE=MyISAM
AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
复制代码
创建模型
< br>(
用于自动验证
,
自动完成
) :
namespace
HomeModel;
use ThinkModel;
class UsersModel extends
Model {
/**
*
自动验证
*
self::EXISTS_VALIDATE
或者
0
存在字段就验证(默认)
* self::MUST_VALIDATE
或者
1
必须验证
*
self::VALUE_VALIDATE
或者
2
值不为空的时候验证
*/
protected $$_validate =
array(
array('nickname',
'require', '
昵称不能为空!
'),
//
默认情况下用正则进行验证
array('username', 'require',
'
用户名不能为空!
'),
//
默认情况下用正则进行验证
array('username', '',
'
该用户名已被注册!
', 0, 'unique',
1), //
在新增的时候验证
name
字段是否唯一
array('email',
'', '
该邮箱已被占用
', 0, 'unique',
1), //
新增的时候
email
字段是否唯一
array('mobile',
'', '
该手机号码已被占用
', 0,
'unique', 1), //
新增的时候
mobile
字段是
否唯一
//
正则验证密码
[
需包含字母数字以及
@*#
中的一种
,
长度为
6-22
位
]
array('password',
'/^([a-zA-Z0-9@*#]{6,22})$$/', '
密码格式不正确<
/p>
,
请重新输入!
', 0),
array('repassword', 'password',
'
确认密码不正确
', 0, 'confirm'), //
验证确认密码是否
和密码一致
array('email', 'email',
'
邮箱格式不正确
'), //
内置正则验证邮箱格式
array('mobile',
'/^1[34578]d{9}$$/',
'
手机号码格式不正确
',
0),
//
正则表达式验证手
机号码
array('verify', 'verify_check',
'
验证码错误
', 0, 'function'), //
判断验证码是否正确
//array('agree', 'is_agree',
'
请先同意网站安全协议!
', 1,
'callback'), //
判断是否勾选
网站安全协议
array('agree', 'require',
'
请先同意网站安全协议!
', 1), //
判断是否勾选网站安全协议
);
/**
*
自动完成
*/
protected $$_auto = array (
array('password',
'md5',
3,
'function')
,
//
对
password
字段在新增和编辑的时候使
md5
函数处理
array('regdate', 'time', 1,
'function'), //
对
regdate
字段在新增的时候写入当前时间戳
array('regip',
'get_client_ip',
1,
'function'),
//
对
regip
字段在新增的时候写入当前注
册
ip
地址
);
/**
*
判断是否同意网站安全管理协议
* @return bool
*/
protected function is_agree()
{
//
获取
POST
数据
$$agree = I('', 0, 'intval');
//
验证
if
($$agree) {
return true;
}
else {
return false;
}
}
复制代码
登录注册
:
namespace HomeController;
use ThinkController;
/**
* Class
LoginController
* @package
HomeController
*/
class LoginController
extends Controller {
/**
*
用户登录
*/
public function
login()
{
//
判断提交方式
if
(IS_POST) {
//
实例化
Login
对象
$$login = D('login');
//
自动验证
创建数据集
if
(!$$data = $$login->create()) {
//
防止输出中文乱码
header(
exit($$login->getError());
}
//
组合查询条件
$$where = array();
$$where['username'] = $$data['username'];
$$result
$$login->where($$where
)->field('userid,username,nickname,password,lastda
te,lastip')->find();
//
验证用户名
对比
密码
if ($$result && $$result['password'] ==
$$result['password']) {
//
存储
session
=
-
-
-
-
-
-
-
-
-
上一篇:英语假期作业21
下一篇:美国两大商业性文件中心的发展历程