时间:2021-07-01 10:21:17 帮助过:38人阅读
十、后台编写-续-2
assign ( 'title', '后台管理系统' );
$this->display ();
}
// 用户登录页面
function login() {
header ( "Content-Type:text/html; charset=utf-8" );
$username=$_POST['username'];
$password=md5($_POST['password']);
$User = D ( "User" ); // 参数的User必须首字母大写,否则自动验证功能失效!
if (! $User->create ()) {
$this->error ( $User->getError () );
} else {
// 查找输入的用户名是否存在
if ($User->where ( "username ='$username' AND password = '$password'" )->find ()) {
session ( username, $username );
$url = U ( '/Index/index/username/' . $username );
redirect ( $url, 5, '跳转中...' );
} else {
$this->error ( '用户名或密码错误' );
}
}
} 其中,$User = D('User');表示实例化User模型,会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,所以,实际上的代码可能和下面的等效: import('@.Model.UserModel');
$User = new UserModel(); 之后,create() 创建数据对象后,将自动收集提交过来的表单数据。在将表单写入数据表之前,常常会有一些对数据的检测(提交的用户名是否符合要求)与处理(如例子中的验证码的比对)。create() 方法就支持数据的自动验证与自动完成。 一般情况下,使用 M 方法实例化模型时,是无法实例化自定义模型类的,也就无法使用自动验证与自动完成功能,因此建议使用 D 方法来实例化模型类。
15 || strlen($data)<5){
return false;
}
return true;
}
//验证码回调函数(ThinkPHP会自动帮我们传递参数)
function callback_checkCode($data){
if(md5($data)!=$_SESSION['verify']){
return false;
}
return true;
}
//自动完成,在create时自动执行
//array('填充字段','填充内容','填充条件','附加规则');
//填充字段
protected $_auto=array(
array('password','md5',3,'function'),
array('ip','callback_returnip',1,'callback'),
array('createtime','time',1,'function'),
);
function callback_returnip(){
return $_SERVER['REMOTE_ADDR'];
}
}
?> 验证规则的定义是统一的规则,定义格式为:array(
array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
...... );说明CREATE TABLE `think_news` ( `id` int(11) NOT NULL AUTO_INCREMENT, `author` int(11) NOT NULL, `subject` varbinary(256) NOT NULL, `createtime` int(11) NOT NULL, `lastmodifytime` int(11) NOT NULL, `message` mediumtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
5 、修改admin\Tpl\Index\index.html
修改编辑新闻按钮如下:
其中,'__PUBLIC__'表示站点公共目录,'__URL__'表示当前模块的URL地址6、在admin\Lib\Action\IndexAction.class.php中添加函数 news
function news(){
//跳转到News控制器的index方法
redirect(U('/News/index'),0, '编写新闻');
}
以上就介绍了第五天 ThinkPHP手把手快速拼接网站(五),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。