ThinkPHP实例 用户注册登录留言

  作者:bea

PHP框架ThinkPHP的一个实例,该实例包括用户的注册、登录以及留言等功能,最值得大家注意的是在存在用户模型的情况下实例化一个用户类的时候使用D方法来实现。 UserActiion.class.php页面 classUserActionextendsAction{ publicfunctionadd(){ $user=D("user"); $user->create(); $result=$user->add(); if($result){ $

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秒后返回指定页面!

如果浏览器无法跳转,请点击此处。

有用  |  无用

猜你喜欢