°

php绘话控制用户注册逻辑

2019年课程规划及价格说明


PHP实战视频教程大全

会话控制

l  概述

PHP中提供了两个超全局变量$_SESSION和$_COOKIE可以实现会话控制。

 

 

 

l  什么是会话控制?

在PHP中一个脚本中所有的东西只在运行的过程中有效,脚本运行完之后所有的变量和数据就都没了。如果想要定义一个在访问网站的过程一直存在的变量就使用会话控制【$_SESSION】。

 

 

 

l  使用$_SESSION

我们可以直接把数据保存到$_SESSION中,这样数据会一直存在直到我们关闭浏览器或者session过期,数据才会消失。使用session之前必须先开启SESSION:

  1. 以下代码向session中存了三个变量
  2. 这三个变量在其他脚本中也可以直接使用

应用情况:登录、购物车、浏览历史等等都是使用会话控制实现的。

l  原理

我们每次访问一个网站时,会在服务器上创建一个文件,session中所有的数据是保存在这个文件中的,然后服务器会把这个文件的文件名保存到我们的浏览器中,下次我们再访问网站时,浏览器会把上次的文件名上传到服务器,然后服务器根据文件名打开上次的文件并取出里面的数据放到session中使用。

客户端浏览器中保存的数据叫做:COOKIE。

服务器上的数据叫做:SESSION。

问题1 :访问网站时,会在服务器上创建一个文件,那么这个文件在哪?

在php.ini中可以配置这个文件保存的目录:

现在一访问网站就在服务器的这个目录创建了一个文件:

在我的浏览器中就保存了这个文件的文件名:

问题2.当关闭浏览器再打开时,就会创建一个新的session文件。上一个session文件就没有用,过一段不确定的时间自动就删除了,到底什么时候删除?

在php.ini中配置删除的概率:

分子:

分母:

思考:为什么关闭浏览器之后再访问时会生成新的session文件?

原因:当关闭浏览器之后,浏览器就把保存的sessionid就删除了。所以下次重新打开浏览器时里面没有sessionid了,所以再访问服务器时,服务器找不到对应的文件就创建了一个新的文件。然后把新的文件的文件名保存到浏览器中。

l  SESSION什么时候过期?

在打开浏览器时,如果长时间不刷新页面,那么就到一定时间就过期了。实际效果:有时我们登录了一个网站,但是如果长时间不刷新和访问新的页面,再访问时会提示已经退出需要重新登录!

过期时间?

在php.ini中可以配置session过期的时间:单位:秒

要求:开启session之前不能有任何输入,否则会开启失败

,除非使用了ob缓冲区:

php.ini的配置文件中有一项,是否自动开启ob缓冲区:

什么是ob?

如果开启,当程序上有任何输出时先把输出的内容放到OB缓冲中【并没有输出】,直到整个脚本运行完之后才会输出。之后详细再讲。

实例:为记事本添加新的功能

功能:

  1. 登录、注册
  2. 只有登录有用户才能发表日志
  3. 登录之后只能修改和删除自己发表的日志

 

扩展:很多数据需要加密,目前在PHP中加密最常用的:

md5:加密完之后肯定是32位的字符串,不可逆

sha1。

实际操作

  1. 设计表结构
  2. 快速的实现注册功能【原理跟添加日志】
  3. 复制html成注册的表表单:
  4. 创建reg.php【复制add.php】
打赏
  喜欢