所在的位置: php >> php前景 >> PHP实现登录

PHP实现登录

项目中常常用到登录,为了辨别用户以及保护资源。今天我们一起来学习如何使用PHP实现登录功能

总体组成

所有登录系统都分为3个部分:

登录验证(鉴权)

登录维持

登录退出

登录验证:只有符合某些验证条件的用户才能登录系统(例如:已注册用户)以及不同用户角色所能够使用的功能以及访问的资源不同(例如:管理员能够修改网站内容,普通用户只能查看;VIP可以查看的某些资源,普通用户不能查看等)

登陆维持:保持用户登录状态(例如,我登录之后访问A页面之后,访问B页面也是登录状态)

登录退出:在某些条件下或者用户进行某些操作时取消用户的登录状态(就是退出登录)

说明

本项目不讲述登录所需要的数据库IO部分,只分析核心逻辑。各位读者可以复制核心代码块,用在自己的项目上,并将xxx替换为相应的内容(例如数据库密码)。本教程基于PHP7.4、MySQL5.7、Apache。

核心概念与任务分析

Http是无状态协议,所以要在客户端保存数据,有两种方法:

Cookie

Session

Cookie是直接保存在用户本地的明文消息,字符个数、消息格式都受到限制

Session也是保存在用户的消息,只不过用户只存储索引,随着请求发送到服务器之后,服务器从数据库(一般是Redis,本教程使用PHP自带的Session,默认存放在系统的临时文件夹,可以在PHP.ini配置存储在别的路径)Session文件格式:

变量名

类型:长度:值;

代码实现

登录页面

?php$posts=$_POST;foreach($postsas$key=$value){$posts[$key]=trim($value);}$pass=md5($posts["pass"]);$user=$posts["user"];if(通过条件){session_start();$_SESSION["admin"]=true;}else{die("用户名密码错误");}?

需要保护(登录后查看)的资源

?php$admin=false;session_start();if(isset($_SESSION["admin"])$_SESSION["admin"]===true){?页面内容?php}else{//验证失败,将$_SESSION["admin"]置为false$_SESSION["admin"]=false;die("请先登录");}?Ryan




转载请注明:http://www.aierlanlan.com/cyrz/758.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了