需求:
做了一个小系统,页面功能都搞定了,包括发表啊、后续编辑什么的,但是有个问题就出现了,我没有办法区分这东西是谁发表的,还有这东西应该谁有权限去编辑,最后还要给领导一个超级权限,也就是谁的东西都能编辑
思路:
做之前一定要把思路高清晰了,不然就是给自己挖坑
- 首先如果想知道是谁发表的,必须弄个登录,这样在发表的时候直接从session里面取用户id了;
- 然后在这条新增数据中带上用户id,也就是要标记上这条数据的拥有者;
- 下次在页面展示的时候,想要编辑数据,就能知道这条数据是否属于当前登录人,如果不属于,那就不让他编辑
以上主要涉及几个功能点:
- 建表
- 实现注册、登录
- 插入数据带上用户信息
- 页面编辑的时候要进行查表权限操作
实现
建表
注册
想要登录,第一步就是注册,这个也很简单给个注册页面,让用户输入想要的用户名、密码以及一些你想要的基本信息,输入完成后提交个表单,在user表中插入一条数据;
有2点注意就行了:
- 提交表单用post 显得稍微专业点
- 用户的敏感信息可以采用加密的形式进行传输,例如:user表中用户密码使用明文存储,就显得有点太随意了
登录
登录就是到登陆页面,校验用户输入的用户名、密码是否能在user表中找到,能找到就登录成功了
这里登录成功后要做的事情:
- 记录用户session :我这里是将用户id记录到session里面了,然后其余信息自己就能查到了
我用的php做后端,设计session也很方便,这样就能设置成功了,这时候session是存储在当前服务器的文件中,如果想要将session放在redis 中,可以参考这篇文章php_修改session 到redis
<?php
session_start();
$_SESSION['name']='123'
echo $_SESSION['name']
- 页面展示修改为已登录状态,可以显示成“xxx你好,欢迎回来!”
插入数据带上用户信息
这个就简单了,如果用户登录了,那么直接取用户id,作为这条数据的一个字段就行了,然后入库
操作权限
- 例如:用户只能编辑自己发布的内容
原理:点击编辑的时候,首先判断是否登录,未登录,则提示登录,已登录,则向后端发送请求,对比当前用户id,与这条数据的id是否相同,相同,则允许标记;不同,查看当前登录用户的有哪些权限(这里需要来个组合查询),如果是管理员权限,那么这个权限能否编辑就看你了
总结
这个东西不是很难,关键是思路实现,知道怎么做了,才能去做;这里也要感谢对我有帮助的人,谢谢!
@晴天-2017-08-29 10:24:52