PHP学习2 — PHP Cookie 与 Session

PHP Cookies

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

创建cookie:setcookie(name, value, expire, path, domain);

       setcookie() 函数必须位于 <html> 标签之前。

       在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码

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

1 <?php
2 // Print a cookie
3 echo $_COOKIE["user"];
4 
5 // A way to view all cookies
6 print_r($_COOKIE);
7 ?>

判断是否设置cookies:isset() 函数

1 <?php
2 if (isset($_COOKIE["user"]))
3   echo "Welcome " . $_COOKIE["user"] . "!<br />";
4 else
5   echo "Welcome guest!<br />";
6 ?>

删除cookie:使过期日期变更为过去的时间点。

1 <?php 
2 // set the expiration date to one hour ago
3 setcookie("user", "", time()-3600);
4 ?>

PHP Sessions

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

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

开始 PHP Session: session_start() 函数

  session_start() 函数必须位于 <html> 标签之前

存储和取回 session 变量:使用 PHP $_SESSION 变量

1 <?php
2 session_start();
3 // store session data
4 $_SESSION['views']=1;
5 ?>

检测Session变量:isset();

删除session:unset() 函数用于释放指定的 session 变量,session_destroy() 函数彻底终结 session.

1 <?php
2 unset($_SESSION['views']);  //释放session变量view
3 session_destroy();  //彻底终结session
4 ?>

php cookie与 session区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中(如用户名)把一些敏感的东西存到session中,不太敏感的东西可以存在session或者Cookie中,但是session有的时候在服务器中容易丢失,所以我们可以结合cookie一起使用,就是说当session的丢失的时候,如果cookie还在我们设定的有效期内,就可以再一次从Cookie中取出值放进session里,所以我们最好同时用session和cookie保存用户名等信息或者在配置文件里。

(*整理自W3School)

原文地址:https://www.cnblogs.com/JasonLiuys/p/6444041.html