当前位置:Gxlcms > PHP教程 > ThinkPHP之用户注册登录留言完整实例_php实例

ThinkPHP之用户注册登录留言完整实例_php实例

时间:2021-07-01 10:21:17 帮助过:3人阅读

本文以实例形式讲述ThinkPHP实现的包括用户的注册、登录以及留言等功能,这里需要大家注意的是,在存在用户模型的情况下实例化一个用户类的时候使用D方法来实现

UserActiion.class.php页面:

<?php
class UserAction extends Action{
public function add(){
$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());
}
}
public function register(){
$this->display();
}
public function login(){
$this->display();
}
public function checklogin(){
$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('用户名不存在!');
}
}
public function loginout(){
Cookie::delete('username');
Cookie::delete('lastlogintime');
$this->assign("jumpUrl","__APP__/index/index");
$this->success('您已经成功退出,欢迎您的下次登录!');
}
}
 

IndexAction.class.php页面:

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
public function insert() {   
$content = new ContentModel();
$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('添加成功!'); } } // 数据查询操作 public function index() { $content = new ContentModel(); $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(); } // 删除操作 public function delete(){ $content = new ContentModel(); $id = $_GET['id']; if($content->where("id=$id")->delete()){ $this->assign("jumpUrl","__URL__/index"); $this->success('删除成功!'); }else{ $this->assign("jumpUrl","__URL__/index"); $this->error('删除失败!'); } } // 编辑操作 public function edit(){ $content = new ContentModel(); $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(); } // 更新操作 public function update(){ $content = new ContentModel(); //直接使用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页面:

<?php
class ContentModel extends Model{
/*
* 自动验证
* array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
*/ 
protected $_validate = array(
array('title','require','标题必须填写!'),
array('content','require','内容必须填写!'), 
);
/* 
* 自动填充
* array(填充字段,填充内容,填充条件,附加规则)
*/
protected $_auto = array(
array('addtime','time',1,'function'),
);
}
?>

UserModel.class.php页面:

<?php
class UserModel extends Model{
protected $_validate = array(
array('username','','帐号名称已经存在!',0,'unique',1), 
);  
}
?>


这里需要注意的是,使用自动验证的时候 实例化时要用 $user = D("user") 而不能用 $user = M("user"),用M这种方法会报错,D函数用于实例化Model,M函数用户实例化一个没有模型的文件。

success.html页面:






信息提示



信息提示

{$message}
2秒后返回指定页面!
如果浏览器无法跳转,请点击此处。

人气教程排行