0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

php面试笔记(8):php基础知识、会话控制考点

电子设计 来源:电子设计 作者:电子设计 2020-12-10 18:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除。

在上一篇中,冷月为大家分享了文件及目录处理考点,大家一定要根据自己的薄弱点进行查漏补缺,尝试着练习目录的复制和删除函数的编写。今天,冷月为大家分享会话控制考点。

回顾真题

简述cookie和session的区别及各自的工作机制,存储位置等。简述cookie的优缺点。

答案:

COOKIE:

在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。

SESSION:

session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。

cookie和session结合使用:

web开发发展至今,cookie和session的使用已经出现了一些非常成熟的方案。在如今的市场或者企业里,一般有两种存储方式:

1、存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。

2、将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。flask采用的就是这种方式,但是也可以替换成其他形式。

考点分析

PHP的会话控制技术

COOKIE:

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

操作

创建cookie

setcookie(name, value, expire, path, domain);

读取cookie

PHP 的 $_COOKIE 变量用于取回 cookie 的值。

删除cookie

当删除 cookie 时,您应当使过期日期变更为过去的时间点。

Session:
PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。

操作
在您把用户信息存储到 PHP session 中之前,首先必须启动会话。

session_start() 函数

存储 Session 变量

存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:

销毁 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。unset() 函数用于释放指定的 session 变量:

配置Session

session.auto_start

php.ini配置session.auto_start=0默认关闭,session.auto_start 开启就自动完成了session_start()。

session.cookie.lifetime

session.cookie.lifetime 默认是0,即浏览器关闭,session失效;修改这个值的作用是修改sessionid以cookie的形式保留在浏览器的时间长度,也就是说这个值设置一个小时,名为sessionid的cookie就保留在浏览器一个小时,session一个小时后才过期;

垃圾回收

session.gc_maxlifetime; 设置过期session时间,默认1440秒(24分钟)

session.gc_probability/session.gc_divisor; 启动垃圾回收机制的概率(建议值为1/1000——5000)

session_id()

session_id — 获取/设置当前会话 ID

session_name()

session_name — 读取/设置会话名称

一网打尽

session信息的存储方式、如何遍历session

答案:session是一种服务端机制,服务器使用一种类似于散列表的结构来保存信息,在PHP中直接用$_SESSION数组来遍历即可

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PHP
    PHP
    +关注

    关注

    0

    文章

    460

    浏览量

    28397
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无刷电机驱动器的基础知识

    本文将从技术角度出发,对三相无刷电机的电机驱动器的作用、种类和规格进行介绍。通过本文,您可以学习到电机驱动器选型所需的基础知识
    的头像 发表于 12-10 14:13 1665次阅读
    无刷电机驱动器的<b class='flag-5'>基础知识</b>

    地线的基础知识

    地线的主要作用就是当电器出现故障时,电源可能击穿(或:破坏)某些元件,使电器的外壳带电。将电器的外壳接地,可以使漏电保护装置。 1. 信号“地”; 信号“地”又称参考“地”,就是零电位的参考点
    发表于 12-08 06:00

    从 0 到 1:用 PHP 爬虫优雅地拿下京东商品详情

    PHP 语言 实现一个 可运行的京东商品爬虫 ,不仅能抓取商品标题、价格、图片、评价数,还能应对常见的反爬策略。全文附完整代码, 复制粘贴即可运行 。 一、为什么选择 PHP 做爬虫? 虽然 Python 是爬虫界的“老大哥”,但 P
    的头像 发表于 09-23 16:42 580次阅读
    从 0 到 1:用 <b class='flag-5'>PHP</b> 爬虫优雅地拿下京东商品详情

    视觉工程师必须知道的工业相机基础知识

    工业相机基础知识概述。
    的头像 发表于 09-19 17:04 908次阅读
    视觉工程师必须知道的工业相机<b class='flag-5'>基础知识</b>

    【硬件方向】名企面试笔试真题:大疆创新校园招聘笔试题

    名企面试笔试真题:大疆创新校园招聘笔试题-硬件 是几年前的题目,不过值得参考一下哦 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-16 17:31

    最易读懂的理工科基础丛书——图解电机基础知识入门

    本书深人浅出地介绍了电动机的基础知识、应用和发展,其内容包括电动机的用途、电动机的基础知识及应用、电流和磁场的关系、直流电动机的结构和作用、交流电动机的结构和作用、特殊电动机的结构和作用
    发表于 04-07 18:28

    1-半导体基础知识(童诗白、华成英主编)

    介绍了半导体基础知识,二极管,三极管。
    发表于 03-28 16:12

    效果器的基础知识

    电子发烧友网站提供《效果器的基础知识.doc》资料免费下载
    发表于 03-26 14:30 6次下载

    开关电源的基础知识题目及答案(免积分)

    本文含有开关电源的基础知识题目及答案,下载附件即可查看!
    发表于 03-06 15:52

    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识

    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
    的头像 发表于 03-06 11:23 1023次阅读
    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO<b class='flag-5'>基础知识</b>

    功率器件热设计基础知识

    功率器件热设计是实现IGBT、碳化硅SiC等高功率密度器件可靠运行的基础。掌握功率半导体的热设计基础知识,不仅有助于提高功率器件的利用率和系统可靠性,还能有效降低系统成本。本文将从热设计的基本概念、散热形式、热阻与导热系数、功率模块的结构和热阻分析等方面,对功率器件热设计基础知识
    的头像 发表于 02-03 14:17 1262次阅读

    PCB绘制基础知识

    电子发烧友网站提供《PCB绘制基础知识.pdf》资料免费下载
    发表于 01-21 15:20 8次下载
    PCB绘制<b class='flag-5'>基础知识</b>

    EMC基础知识-华为

    EMC基础知识-华为
    发表于 01-06 14:09 5次下载

    华为云 Flexus X 实例下的场景体验——小企业的福星——最简单的 php 环境搭建

     前言 都是 php 是全世界最好的语言,我也是非常的喜欢,虽然我是搞大数据的,但是 php 在很逗情况下对于个人开发者来说是非常友好的,对于一般小企业来说使用【华为云 Flexus X 实例】来
    的头像 发表于 01-02 11:59 693次阅读
    华为云 Flexus X 实例下的场景体验——小企业的福星——最简单的 <b class='flag-5'>php</b> 环境搭建

    万字长文,看懂激光基础知识

    深入介绍激光基础知识,帮助您轻松理解激光领域的关键概念和原理。
    的头像 发表于 12-20 09:49 2124次阅读
    万字长文,看懂激光<b class='flag-5'>基础知识</b>!