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

来源:脚本之家  责任编辑:小易  

可以参照mysql的功能权限的做法,我不知道你提问的是不是这个权限,举个例子:你后台可能有贴子管理,用户管理等等功能,假设帖子管理使用权限是1,用户管理使用权限是2,没有权限是0新建三个表,一个是管理员表,一个是角色表,一个是管理员和角色关系表举两个角色的例子,一个是普通管理员,一个是超级管理员,当新增超级管理员角色的时候角色的时候,此时超级用户的权限应该是12,当新增普通管理员的时候,他只有管理帖子的权限,那么他的权限就是10,这样角色表里面就有两个角色了接着,新增用户的时候,例如新增一个用户叫题主,新增的时候选择一个角色是普通管理员,写入数据库后,顺便写进角色和用户之间的关系表,这样就能做到权限的控制了,也可以细分到编辑,添加等权限,不过要保证方法名字一样。当然这里只是粗略的说了一下而已,真做起来有挺多问题,尝试一下就知道了前台用户注册登录权限思路也差不多,自己想想,做做就清楚了还有就是可以google一下RBAC的数据库设计www.zgxue.com防采集请勿采集本网。

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

你需要在一个用户表里面设置用户权限,登录的时候进行验证账号密码,再看权限进行跳转就可以了。希望我的回答可以帮到你,有什么不懂可以追问。

 

用户表添加一个字段,用来控制权限,登录时候判断这个权限,最简单的是加密存到cookie,最好的就是cookie存放加密的用户密码,每次交互判断下

UserActiion.class.php页面:

thinkphp只是一个框架,让用户登录后一直显示登录名要看你怎么设计的程序, 很简单,用户登录-》获取登录名并存储session-》ajax前端显示/或渲染模板时解析 用户登录后用户信息可以存储在session

<?phpclass 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页面:

你可以判断是否登录成功,成功就显示,注销就是session没有了,一样的判断,判断session就行了,很简单的

<?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页面:

<?phpclass 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页面:

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

 

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

 

用户表添加一个字段,用来控制权限,登录时候判断这个权限,最简单的是加密存到cookie,最好的就是cookie存放加密的用户密码,每次交互判断下

success.html页面:

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

if session有值 echo"欢迎登陆xxelse“登录和注册”这个应该很简单啊,跟thinkphp有啥关系内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • thinkphp登录功能的实现方法
  • thinkphp3.2.2实现持久登录(记住我)功能的方法
  • thinkphp框架下实现登录、注册、找回密码功能
  • thinkphp5项目中实现qq第三方登录功能
  • thinkphp实现的验证码登录功能示例
  • thinkphp实现登录退出功能
  • thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
  • thinkphp 手机号和用户名同时登录
  • php实现用户异地登录提醒功能的方法【基于thinkphp框架】
  • thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
  • php 实现简单的登录功能示例【基于thinkphp框架】
  • php开启目录引索+fancyindex漂亮目录浏览带搜索功能
  • yii框架函数简单用法分析
  • php使浏览器直接下载pdf文件的方法
  • 使用thinkphp框架开发移动端接口
  • php与ajax相结合实现登录验证小demo
  • laravel框架实现后台登录、退出功能示例
  • thinkphp整合系列之极验滑动验证码geetest功能
  • 如何批量清理系统临时文件(语言:c#、 c/c++、 php 、python 、j
  • php+百度ai ocr文字识别实现了图片的文字识别功能
  • php遍历文件夹下的所有文件和子文件夹示例
  • thinkphp,我想登录后显示用户名,同时隐藏登录和注册的文字,怎么实现呢
  • ThinkPHP框架简单的注册登录里用户权限控制怎么实现
  • 用thinkPHP写有微信授权的用户登录,有微博授权的用户,有普通用户注册登录?
  • ThinkPHP用户注册问题
  • ThinkPHP框架简单的注册登录里用户权限控制怎么实现
  • ThinkPHP框架简单的注册登录里用户权限控制怎么实现
  • ThinkPHP如何让用户登录后一直显示登录名
  • ThinkPHP框架简单的注册登录里用户权限控制怎么实现
  • thinkphp如何实现登录成功后 显示用户名、注销按钮,注销后显示登录、注册按钮
  • thinkphp怎样查询注册用户所属组
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程thinkphp登录功能的实现方法thinkphp3.2.2实现持久登录(记住我)功能的方法thinkphp框架下实现登录、注册、找回密码功能thinkphp5项目中实现qq第三方登录功能thinkphp实现的验证码登录功能示例thinkphp实现登录退出功能thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册thinkphp 手机号和用户名同时登录php实现用户异地登录提醒功能的方法【基于thinkphp框架】thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例php 实现简单的登录功能示例【基于thinkphp框架】yii框架函数简单用法分析php使浏览器直接下载pdf文件的方法使用thinkphp框架开发移动端接口php与ajax相结合实现登录验证小demolaravel框架实现后台登录、退出功能示例thinkphp整合系列之极验滑动验证码geetest功能如何批量清理系统临时文件(语言:c#、 c/c++、 php 、python 、jphp+百度ai ocr文字识别实现了图片的文字识别功能php遍历文件夹下的所有文件和子文件夹示例php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实thinkphp框架整合微信支付之jsapi模式图文codeigniter删除和设置cookie的方法php 记录访客的浏览信息方法php微信api接口类2个自定义的php in_array 函数,解决大量php递归使用示例(php递归函数)php+ajax异步带进度条上传文件实例php实现活动人选抽奖功能php+iframe图片上传实现即时刷新效果php生成静态页面并实现预览功能
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved