设为首页 收藏本站
查看: 970|回复: 0

[经验分享] PHP学习之会话控制session、cookie

[复制链接]

尚未签到

发表于 2018-12-24 07:55:20 | 显示全部楼层 |阅读模式
  会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为。比如:网购和处理邮件时,你可能需要访问多个页面,但只要你不退出,在同一个系统上,多个页面之间互相切换时,还能保持用户的登录信息。
  但是http是无状态的协议,不能维护两个事物之间的状态。但一个用户在请求一个页面以后再请求另外一个页面时,还要让服务器知道这是同一个用户。可以使用cookie和session解决这个问题。
  cookies(小甜饼的意思)是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或硬盘上,在客户对该服务的请求中发回它。
  格式和描述:
  bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

  setcookie() defines a cookie to be sent along      with the rest of the HTTP headers. Like other headers, cookies      must be sent before any output from your      script (this is a protocol restriction). This requires that you      place calls to this function prior to any output, including       and  tags      as well as any whitespace. If output exists prior to calling this      function, setcookie() will fail and return FALSE.      If setcookie() successfully runs, it will return      TRUE. This does not indicate whether the user accepted the cookie.
setcookie()函数的参数说明参数描述示例$namecookie的识别名称 $valuecookie的值 $expirecookie的生存期限 $pathcookie在服务器端生效的路径 $domaincookie所属服务器域名 $secure设置cookie是否仅通过https连接   一个简单的登录系统:
  


    用户:
   
    密码:
   
   


  session
  session的意思是会话,session和cookie都是用来存储用户的相关资料,不同之处是session将数据存储在服务器端。
  客户端仅需要保存由服务器为用户创建的一个session标识符,称为sessionID;而在服务器端保存session变量的值。SessionID是一个不会重复,又不容易被找到规律的,由32为十六进制数组成的字符串。如果用户阻止cookie的使用,则可以将sessionid保存在用户浏览器地址栏的URL中。
  当某个用户想web服务器发出请求时,服务器首先会检查这个客户端的请求里是否已经包含了一个sessionID。如果包含,说明之前已经为此用户创建过sessionID,服务器则按该sessionID,把session检索出来使用。如果不含,则为该用户创建一个session,并且生成一个与此session相关的sessionID,在本次响应中被传送给客户端保存。
  为了避免对服务器的过大消耗,session会因为下面两种情况而自然消失:
  一、用户关闭浏览器。
  二、session指定的有效期限到期。一般PHP系统中对于session的生存时间并无定义,默认为0.可以通过修改php.ini配置文件中有关"session.cookie.lift_time"项目,来设定有效期,以秒为单位指定了发送到浏览器cookiecookie的生命周期。
  和cookie不同,session使用前,必须先调用session_start()函数,以便让PHP核心程序,将和session相关的内建环境变量预先载入内存。
  可使用session_destroy()函数销毁整个session
  将上面的使用cookie的登录系统修改为使用session:
  


    用户:
   
    密码:
   
   






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655036-1-1.html 上篇帖子: php将中文转化成拼音 下篇帖子: php用CSV导出数据库用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表