cookie

什么是 Cookie

cookie 保存在客户端,常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

cookie的设置、获取、删除

  • setcookie()函数用于设置 cookie。
    bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = ""
    [, bool $secure = false [, bool $httponly = false ]]]]]] )
  • 若在html文件中,setcookie() 函数必须位于 标签之前
  • cookie 可以有多个键值对,可以给不同的键值指定不同的有效时间.
    在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
  • 当删除 cookie 时,您应当使过期日期变更为过去的时间点

session

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

PHP Session 变量

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中

Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导

session的设置、获取、删除

  • 在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
  • 若在html文件中,session_start() 函数必须位于 标签之前
  • 存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
  • 若从session中获取类时必须先声明类文件
  • 如果您希望删除某些 session 数据,可以使用 unset()session_destroy() 函数。
    • unset() 函数用于释放指定的 session 变量
    • ession_destroy() 函数彻底终结 session (session_destroy() 将重置 session,您将失去所有已存储的 session 数据)

Session数据 默认存放时间为1440s(即24min),从php.ini的[session]节可以配置

禁用cookie后的session解决方案

当用户禁用cookie后,服务器每次session_start()都会创建全新的session文件,结果无法让多个php页面共享同一份session文件。

如果客户端禁用cookie,怎么实现session技术共享多个页面?

方案1:

在每个超链接上添加一个PHPSESSID=sessionId;
同时在每个页面加入:

方案2:

使用常量SID
在超链接直接拼接SID常量即可。
例: echo "<a href='shopProcess.php?bookId=sn01&bookName=天龙八部&".SID."'>天龙八部</a><br/>";

方案3:

启用session.use_trans_sid指定是否启动透明SID支持,即:设置session.use_trans_sid=1,重启服务器。

cookie session保存时间

Cookie的生命周期是累计的,从创建开始计时,到达一定时间后无效。

Session的生命周期是间隔的,从创建开始计时,到达一定时间后无效。如果在其中访问过session,则重新计时。

php 文件

打开文件

对文件进行操作过程中,以流的概念进行操作

  • php程序(内存) –> 输出流 –> 文件
  • 文件 –> 输入流 –> php程序(内存)

fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。

mode 模式名称 说明
“r” 只读 只读方式打开,将文件指针指向文件头。
“r+” 只读 读写方式打开,将文件指针指向文件头。
“w” 只写 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“w+” 只写 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
“a” 追加 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“a+” 追加 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
“x” 谨慎写 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
“x+” 谨慎写 创建并以读写方式打开,其他的行为和 ‘x’ 一样。

打开文件,并获取文件信息:

读取文件

写文件

文件拷贝 删除

上传文件

php.ini文件:
upload_max_filesize = 2M (PHP默认上传2M)

下载文件

分类: 后端

发表评论

电子邮件地址不会被公开。 必填项已用*标注