关于PHP中会话技术的知识点分享

时间:2023-03-09 17:06:43
关于PHP中会话技术的知识点分享

前言:在PHP中会话技术也是特别重要的,主要应用在免登录,保存一些持久化数据等等的方面,但是后期的介绍中,我将会放弃这种技术改用redis方法来替换这种方法.

(一)cookie技术(即数据缓存在客户端中有风险)

  1.设置操作(增删改)

    增:setcookie(名, 值)

    删:setcookie(名, 空值)

    改:setcookie(名, 值2)

  2.查

    查:$_COOKIE

  3.setcookie与$_COOKIE的关系

    设置了cookie不会马上生效,而是在下一次访问时候才可以显示,是由于浏览器要在最后一次加载完成后,才会记录这一次的修改

  4.COOKIE 属性的设置

    setcookie(名, 值, 有效期,有效路径,有效域,是否安全传输,httponly);

    1.有效期:

      通过setcookie函数的第三个参数来进行设置的;

      不设置或设置为0表示默认情况,为一个会话周期;

      默认情况一个会话周期为从新增该条COOKIE到浏览器关闭为止。

    2.有效路径

      通过setcookie函数的第四个参数来进行设置的;

      不设置或设置为空字符串表示默认情况;

      默认情况表示当前程序所在目录及其子目录有效。

    3.有效域

      通过setcookie函数的第五个参数来进行设置的;

      不设置或设置为空字符串表示默认情况;

      默认情况表示当前域名及其子域名有效。

    4.是否安全传输

      通过setcookie函数的第六个参数来进行设置的;

      不设置或设置为false表示默认情况;

      默认情况表示http或https下都有效,如果将值设置为true,则表示只有在https下才有效(包括增删改查)。

    5.httponly

      通过setcookie函数的第七个参数来进行设置的;

      不设置或设置为false表示默认情况;

      默认情况表示除了能够使用原程序脚本代码访问以外,还能够通过其他脚本语言访问到COOKIE数据。如果设置为true,则表示只允许原程序脚本代码进行操作。

(二)session技术(即数据存在服务器中)

   注意:操作session都要开启session_start();

   1.设置操作(增删改)

    增:$_SESSION['name'] = 'zhangsan';

    删:unset($_SESSION['name']);

    改:$_SESSION['name'] = 'zhangsan111';

   2.查

    var_dump($_SESSION['name'])

   3.销毁

    session_destroy()

   4.SESSION的属性控制(单个设置)

    有效期:session.cookie_lifetime = 0;

    有效路径:session.cookie_path = /

    有效域:session.cookie_domain = 

    httponly属性:session.cook

   5.SESSION的属性控制(多个设置)

    session_set_cookie_params(有效期[, 有效路径[, 有效域[, 是否安全传输[, httponly]]]])