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

    文章

    453

    浏览量

    26707
收藏 人收藏

    评论

    相关推荐

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

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

    PHP48_4P9X4P9,PHP48_4P9X4P9-L,PHP48_4P9X4P9-M,这三种封装除了焊盘的长度不同还有什么区别呢?

    PHP48_4P9X4P9,PHP48_4P9X4P9-L,PHP48_4P9X4P9-M,这三种封装的区别除了焊盘的长度不同还有什么区别呢,三种封装都可以焊上THS1408-EP这个芯片吗?
    发表于 11-28 06:34

    品质管理基础知识

    品质管理基础知识
    的头像 发表于 11-01 11:08 364次阅读
    品质管理<b class='flag-5'>基础知识</b>

    基于NFS实现WordPress

    采用yum方式进行安装httpd、MariaDB、phpphp-mysql,php-mysql用来进行php和MariaDB数据库的连接。
    的头像 发表于 10-28 13:49 196次阅读

    Verilog HDL的基础知识

    本文继续介绍Verilog HDL基础知识,重点介绍赋值语句、阻塞与非阻塞、循环语句、同步与异步、函数与任务语法知识
    的头像 发表于 10-24 15:00 444次阅读
    Verilog HDL的<b class='flag-5'>基础知识</b>

    负载开关基础知识

    电子发烧友网站提供《负载开关基础知识.pdf》资料免费下载
    发表于 10-08 09:56 1次下载
    负载开关<b class='flag-5'>基础知识</b>

    如何将ESP826的数据POST到xammpp服务器上的php文件?

    我最初尝试使用 8 个变量,但现在只设置了一个 2 个字段 数据库来测试它。使用相同的 PHP 文件从浏览器发送 POST it works OK.But when sent from ESP8266
    发表于 07-19 07:26

    面试嵌入式工作,会被问什么问题?

    面试嵌入式工作时,面试官可能会从多个方面考察应聘者的知识、技能和经验。以下是一些常见的嵌入式工作面试问题,这些问题涵盖了基础知识、专业技能、
    的头像 发表于 07-17 09:26 2032次阅读
    <b class='flag-5'>面试</b>嵌入式工作,会被问什么问题?

    云服务器apache如何配置解析php文件?

    在云服务器上配置Apache以解析PHP文件通常需要以下步骤: 1、安装PHP:首先确保在服务器上安装了PHP。你可以使用包管理工具(如apt、yum等)来安装PHP。例如,在Ubun
    的头像 发表于 04-22 17:27 1027次阅读

    云服务器的linux中如何搭建php运行环境?

    要在云服务器的Linux系统上搭建PHP运行环境,您可以按照以下步骤进行: 1、安装PHP: 使用包管理工具(如apt、yum等)安装PHP及其相关模块。例如,在Ubuntu系统上,您可以运行以下
    的头像 发表于 03-21 17:08 679次阅读

    PHP用户定义函数详细讲解

    描述 在所有编程和脚本语言中,函数是可以在程序中重复使用的语句块。在 PHP 中,函数的概念与另一种语言(如“C”)中的概念相同。标准 PHP 发行版中有 1,000 多个内置函数。除此之外,我们
    的头像 发表于 03-20 14:27 414次阅读

    FPGA基础知识介绍

    电子发烧友网站提供《FPGA基础知识介绍.pdf》资料免费下载
    发表于 02-23 09:45 32次下载

    php是什么

    PHP(\"PHP: Hypertext Preprocessor\",超文本预处理器)是一种广泛应用的开源多用途脚本语言。它是一种服务器端的脚 本语言,通常被嵌入到HTML文档
    发表于 01-30 16:33

    射频与微波基础知识

    射频与微波基础知识
    的头像 发表于 01-16 10:05 849次阅读
    射频与微波<b class='flag-5'>基础知识</b>

    PHP中数组的使用方法!

    PHP中数组的使用方法! PHP是一种广泛使用的网络编程语言,它的数组功能非常强大且灵活。数组是一种数据结构,它允许我们在单个变量中存储多个值。 在本篇文章中,我将详细解释PHP数组的各种用法,包括
    的头像 发表于 01-12 15:11 562次阅读