前台搭建完了后自然是编码,写程序了。前台已经做出来了整系统个大思路肯定是出来了的。
1)数据库:
CREATE TABLE `u_liuyan` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`email` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`qq` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`title` varchar(45) NOT NULL,
`con` varchar(20) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
2)进行数据库操作。
1,配置数据库。
在conf文件夹下面建立一个config.php文件,填充:
<?php
return array(
"DB_TYPE" =>'mysql',
"DB_HOST" =>'localhost',
"DB_NAME" =>'liuyan',
"DB_USER" =>'root',
"DB_PWD" =>'',
"DB_PREFIX" =>'u_', //表的前缀
)
?>
2,数据操作
a)在LIb/Model下面建立一个 LiuyanModel.class.php 的文件夹,里面代码:
class LiuyanModel extends Model
{
}
这样以来我们就可以对数据进行操作了。
命名是:要操作的数据表名+Model.class.php。
b)在INdexAction.calss.php中新加入如下代码(蓝色为新加代码):
class IndexAction extends Action{
public function index(){
$this->display();
}
public function insert()
{
$User = D("Liuyan");
$User->create();
$User->add();
}
public function verify() //这个函数是成验证码的,和入库操作无关。
{
import("ORG.Util.Image");
Image::buildImageVerify();
}
}
这时回忆一下在add.html里面的表单提交的action="__URL__/insert",既是提交到这里insert()函数来处理。
这样,往数据里插入数据就已经实现,但很明显我们不能让用户任意玩数据库里插数据,还得进行数据过滤。
c),过滤数据。回到LiuyanModel.class.php,新加入代码:
class LiuyanModel extends Model
{
//过滤表单
protected $_validate = array(
array('name','require','留言人姓名必须!',1),
array('email','email ','邮箱格式错误','2'),
array('qq','number','请输入正确的QQ'),
array('title','require','主题不能为空',1),
array('con','require','内容不能为空',1),
array('ma','checkma','验证码错误',0,'callback'),
);
//验证验证码
public function checkma()
{
return md5($_POST['ma']) == $_SESSION['verify'];
}
}
thinkphp内置了数据对象的自动验证功能,需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,支持的验证因子格式:
验证条件
