PHP 新手入门之session
1.什么是session
session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的
2.php session 变量
您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。
PHP session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。
3.开启session
session_start();
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> </body> </html>
如上代码所示,这样session就已经被开启了,当我们想在session中存入数据或者取出数据,首先我们就要开启session
session 开启之后,存入session 的数据是可以被其他页面调用的
在session 变量中存入数据
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> </body> </html>
这样我们就在$_SESSION['name']这个变量中,存入了一个admin的值
然后输出session
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> <?php echo "欢迎您:".$_SESSION['name']."!"; ?> </body> </html>
当我们在另外一个文件中写入
<?php
echo "欢迎您:".$_SESSION['name']."!";
?>
也是可以输出session中name的值
销毁session
如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
unset() 函数用于释放指定的 session 变量
session_distroy() 一般用于销毁session
比如俩个页面,第一个页面,我们用到session 但是没有关闭,到第二个页面的时候
<?php
session_distroy();
?>
这样session 就被清空了
session 与 cookie 的区别
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中