当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-03-23 10:11:17 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP之用户注册登录留言完整实例,有助于详细了解ThinkPHP的运作流程,需要的朋友可以参考下

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

UserActiion.class.php页面:

  1. <?php 
  2. class UserAction extends Action{ 
  3. public function add(){ 
  4. $user = D("user"); 
  5. $user->create(); 
  6. $result = $user->add(); 
  7. if($result){ 
  8. $this->assign("jumpUrl","__APP__/index/index"); 
  9. $this->success('注册成功!'); 
  10. }else
  11. //echo $user->getError(); 
  12. $this->assign("jumpUrl","__APP__/user/register"); 
  13. $this->error($user->getError()); 
  14. public function register(){ 
  15. $this->display(); 
  16. public function login(){ 
  17. $this->display(); 
  18. public function checklogin(){ 
  19. $username = $_POST['username']; 
  20. $passwd = $_POST['passwd']; 
  21. $user = D("user"); 
  22. //$User->where('id=8')->find();这里的where 语句要注意一下,如果是其他字段的话后面一定要有单引号 
  23. $userinfo = $user->where("username ='$username'")->find(); 
  24. if(!emptyempty($userinfo)){ 
  25. if($userinfo['passwd'] == $passwd){ 
  26. Cookie::set('userid',$userinfo['id'],time()+3600*24); 
  27. Cookie::set('username',$username,time()+3600*24); 
  28. Cookie::set('lastlogintime',time(),time()+3600*24); 
  29. $this->assign("jumpUrl","__APP__/index/index"); 
  30. $this->success('登陆成功!'); 
  31. }else
  32. $this->assign("jumpUrl","__APP__/user/login"); 
  33. $this->error('密码出错,请重新输入!'); 
  34. }else
  35. $this->assign("jumpUrl","__APP__/user/login"); 
  36. $this->error('用户名不存在!'); 
  37. public function loginout(){ 
  38. Cookie::delete('username'); 
  39. Cookie::delete('lastlogintime'); 
  40. $this->assign("jumpUrl","__APP__/index/index"); 
  41. $this->success('您已经成功退出,欢迎您的下次登录!'); 

IndexAction.class.php页面:

  1. <?php 
  2. // 本类由系统自动生成,仅供测试用途 
  3. class IndexAction extends Action{ 
  4. public function insert() {    
  5. $content = new ContentModel(); 
  6. $result = $content->create(); 
  7. if(!$result){ 
  8. $this->assign("jumpUrl","__URL__/index"); 
  9. $this->error($content->getError());//如果创建失败,表示验证没有通过,输出错误信息 
  10. }else{//验证通过,进行其他操作 
  11. $content->userid=Cookie::get('userid'); 
  12. $content->add(); 
  13. $this->assign("jumpUrl","__URL__/index"); 
  14. $this->success('添加成功!'); 
  15. }  
  16. // 数据查询操作   
  17. public function index() { 
  18. $content = new ContentModel(); 
  19. $list = $content->findAll();   
  20. //用户的cookie 
  21. $username = Cookie::get('username'); 
  22. $lastlogintime = Cookie::get('lastlogintime'); 
  23. $this->assign('list',$list);     
  24. $this->assign('title','我的首页'); 
  25. $this->assign('username',$username); 
  26. $this->assign('lastlogintime',$lastlogintime); 
  27. $this->display();   
  28. }  
  29. // 删除操作 
  30. public function delete(){ 
  31. $content = new ContentModel(); 
  32. $id = $_GET['id']; 
  33. if($content->where("id=$id")->delete()){ 
  34. $this->assign("jumpUrl","__URL__/index"); 
  35. $this->success('删除成功!'); 
  36. }else
  37. $this->assign("jumpUrl","__URL__/index"); 
  38. $this->error('删除失败!'); 
  39. }  
  40. // 编辑操作 
  41. public function edit(){ 
  42. $content = new ContentModel(); 
  43. $id = $_GET['id']; 
  44. if($id != ''
  45. //$data = $content->select($id); 
  46. $data = $content->where("id=$id")->select(); 
  47. if(!emptyempty($data)){ 
  48. $this->assign('data',$data); 
  49. }else
  50. echo "数据为空!"
  51. $this->assign('title','编辑页面'); 
  52. $this->display(); 
  53. // 更新操作 
  54. public function update(){ 
  55. $content = new ContentModel(); 
  56. //直接使用create(),自动会帮你进行数据的传值 
  57. /*$content->create(); 
  58. $content->save(); // 根据条件保存修改的数据 
  59. echo "更新数据成功!";*/ 
  60. // 使用post 传值过来,进行更新 
  61. $id = $_POST['id']; 
  62. if($id != ''
  63. $data['id'] = $id
  64. $data['title'] = $_POST['title']; 
  65. $data['content'] = $_POST['content']; 
  66. if($content->save($data))// 根据条件保存修改的数据 
  67. $this->assign("jumpUrl","__URL__/index"); 
  68. $this->success('更新数据成功!'); 
  69. else
  70. $this->assign("jumpUrl","__URL__/index"); 
  71. $this->success('更新数据失败!'); 
  72. }else 
  73. echo "保存数据失败!"
  74. ?> 

ContentModel.class.php页面:

  1. <?php 
  2. class ContentModel extends Model{ 
  3. /* 
  4. * 自动验证 
  5. * array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) 
  6. */ 
  7. protected $_validate = array
  8. array('title','require','标题必须填写!'), 
  9. array('content','require','内容必须填写!'),  
  10. ); 
  11. /*  
  12. * 自动填充 
  13. * array(填充字段,填充内容,填充条件,附加规则) 
  14. */ 
  15. protected $_auto = array
  16. array('addtime','time',1,'function'), 
  17. ); 
  18. ?> 

UserModel.class.php页面:

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

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

success.html页面:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  5. <meta http-equiv="refresh" content="20; url='{$jumpUrl}'" /> 
  6. <title>信息提示</title> 
  7. </head> 
  8. <body> 
  9. <div id="man_zone"> 
  10. <table width="40%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;"> 
  11. <tr> 
  12. <th align="center" style="background:#cef">信息提示</th> 
  13. </tr> 
  14. <tr> 
  15. <td><p>{$message}<br /> 
  16. 2秒后返回指定页面!<br /> 
  17. 如果浏览器无法跳转,<a href="{$jumpUrl}" rel="external nofollow" >请点击此处</a></p></td> 
  18. </tr> 
  19. </table> 
  20. </div> 
  21. </body> 
  22. </html> 

Tags: ThinkPHP用户注册登录留言

分享到: