ThinkPHP实例 用户注册登录留言
作者:bea
PHP框架ThinkPHP的一个实例,该实例包括用户的注册、登录以及留言等功能,最值得大家注意的是在存在用户模型的情况下实例化一个用户类的时候使用D方法来实现。
UserActiion.class.php页面
classUserActionextendsAction{
publicfunctionadd(){
$user=D("user");
$user->create();
$result=$user->add();
if($result){
$this->assign("jumpUrl","__APP__/index/index");
$this->success('注册成功!');
}else{
//echo$user->getError();
$this->assign("jumpUrl","__APP__/user/register");
$this->error($user->getError());
}
}
publicfunctionregister(){
$this->display();
}
publicfunctionlogin(){
$this->display();
}
publicfunctionchecklogin(){
$username=$_POST['username'];
$passwd=$_POST['passwd'];
$user=D("user");
//$User->where('id=8')->find();这里的where语句要注意一下,如果是其他字段的话后面一定要有单引号
$userinfo=$user->where("username='$username'")->find();
if(!empty($userinfo)){
if($userinfo['passwd']==$passwd){
Cookie::set('userid',$userinfo['id'],time()+3600*24);
Cookie::set('username',$username,time()+3600*24);
Cookie::set('lastlogintime',time(),time()+3600*24);
$this->assign("jumpUrl","__APP__/index/index");
$this->success('登陆成功!');
}else{
$this->assign("jumpUrl","__APP__/user/login");
$this->error('密码出错,请重新输入!');
}
}else{
$this->assign("jumpUrl","__APP__/user/login");
$this->error('用户名不存在!');
}
}
publicfunctionloginout(){
Cookie::delete('username');
Cookie::delete('lastlogintime');
$this->assign("jumpUrl","__APP__/index/index");
$this->success('您已经成功退出,欢迎您的下次登录!');
}
}
IndexAction.class.php页面
//本类由系统自动生成,仅供测试用途
classIndexActionextendsAction{
publicfunctioninsert(){
$content=newContentModel();
$result=$content->create();
if(!$result){
$this->assign("jumpUrl","__URL__/index");
$this->error($content->getError());//如果创建失败,表示验证没有通过,输出错误信息
}else{//验证通过,进行其他操作
$content->userid=Cookie::get('userid');
$content->add();
$this->assign("jumpUrl","__URL__/index");
$this->success('添加成功!');
}
}
//数据查询操作
publicfunctionindex(){
$content=newContentModel();
$list=$content->findAll();
//用户的cookie
$username=Cookie::get('username');
$lastlogintime=Cookie::get('lastlogintime');
$this->assign('list',$list);
$this->assign('title','我的首页');
$this->assign('username',$username);
$this->assign('lastlogintime',$lastlogintime);
$this->display();
}
//删除操作
publicfunctiondelete(){
$content=newContentModel();
$id=$_GET['id'];
if($content->where("id=$id")->delete()){
$this->assign("jumpUrl","__URL__/index");
$this->success('删除成功!');
}else{
$this->assign("jumpUrl","__URL__/index");
$this->error('删除失败!');
}
}
//编辑操作
publicfunctionedit(){
$content=newContentModel();
$id=$_GET['id'];
if($id!='')
{
//$data=$content->select($id);
$data=$content->where("id=$id")->select();
if(!empty($data)){
$this->assign('data',$data);
}else{
echo"数据为空!";
}
}
$this->assign('title','编辑页面');
$this->display();
}
//更新操作
publicfunctionupdate(){
$content=newContentModel();
//直接使用create(),自动会帮你进行数据的传值
/*$content->create();
$content->save();//根据条件保存修改的数据
echo"更新数据成功!";*/
//使用post传值过来,进行更新
$id=$_POST['id'];
if($id!='')
{
$data['id']=$id;
$data['title']=$_POST['title'];
$data['content']=$_POST['content'];
if($content->save($data))//根据条件保存修改的数据
{
$this->assign("jumpUrl","__URL__/index");
$this->success('更新数据成功!');
}
else{
$this->assign("jumpUrl","__URL__/index");
$this->success('更新数据失败!');
}
}else
{
echo"保存数据失败!";
}
}
}
?>
ContentModel.class.php页面
classContentModelextendsModel{
/*
*自动验证
*array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
*/
protected$_validate=array(
array('title','require','标题必须填写!'),
array('content','require','内容必须填写!'),
);
/*
*自动填充
*array(填充字段,填充内容,填充条件,附加规则)
*/
protected$_auto=array(
array('addtime','time',1,'function'),
);
}
?>
UserModel.class.php页面
classUserModelextendsModel{
protected$_validate=array(
array('username','','帐号名称已经存在!',0,'unique',1),
);
}
?>
要注意的问题,使用自动验证的时候实例化时要用$user=D("user")而不能用$user=M("user"),用M这种方法会报错,D函数用于实例化Model,M函数用户实例化一个没有模型的文件。
success.html页面
信息提示
信息提示
{$message}
2秒后返回指定页面!
如果浏览器无法跳转,请点击此处。
有用 | 无用猜你喜欢
您可能感兴趣的文章:
- 右键没有迅雷下载但可以正常下载的方法
- 使XP系统字体变得更加清晰的办法
- 详细介绍Linux Ls命令以及其参数
- 系统中文件名乱码的文件如何正确删除
- 提高windows效率的几款免费软件
- 对XP系统的注册表你知道多少
- XP性能优化之使用注册表优化NTFS
- Red Hat Linux操作系统简介与安装
- XP系统优化设置加快运行速度
- 电脑使用技巧大全
- 如何快速提高电脑运行速度
- 教你怎样换电脑鼠标图标
- 教你怎么优化和美化电脑桌面
- ThinkPHP模板 用ThinkPHP写的模板应用
- thinkphp常使用的系统常量整理发布
- thinkphp视频教程下载地址兄弟连thinkphp视频
- Thinkphp向数据库插入数据失败原因
- 分享一个thinkphp错误提示页面代码
- 解决ThinkPHP错误页无法正常跳转