11月7日上午PHP会话控制(session和cookie)、跨页面传值

时间:2022-04-19 21:08:22

1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录。

特点:(1)session是存储在服务器;

     (2)session每个人(登陆者)存一份;

   (3)session有默认的过期时间;(如果登录的人过多,数据就会太多,由于存储在服务器,会给服务器造成压力,过一定的时间会清除掉)

   (4)session里面可以存储任意类型的数据。

    由以上特点可以总结出session的特点是比较安全。缺点是对服务器造成一定的压力。

   (5)当一个页面需要使用session时,需要在页面顶部加session_start();要在页面最上面写,前面不能出现任何代码,代码指的是PHP代码,可以有HTML代码。最好是养成习惯,把<?php session_start(); ?>写在页面的最顶部。一个页面写一次就可以。

   (6)操作session。a.赋值。b.取值。

赋值:

<?php
session_start();//session开始标签,在最顶部写。
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
$_SESSION["uid"] = "zhangsan";//给$_SESSION["uid"]赋值。
?>
</body>
</html>

取值:

取值可以在任意页面取值,比如说做登录页面时,可以把登录名、密码名等信息赋值给 $_SESSION["uid"],在同一个浏览器上的其它页面也可以取到登录名、密码名等的值,前提是赋值的页面要先打开过,如果直接打开其它页面取值,将无法取到。再就是关闭浏览器以后再打开,也要先打开赋值页面,其它页面才能取到值。

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<?php
echo $_SESSION["uid"]
?>
</body>
</html>

2.cookie

特点:(1)cookie存储在客户端,浏览器在清除浏览信息时会有cookie清除选项。

   (2)cookie每人存一份。

   (3)cookie没有默认过期时间。

   (4)只能存储字符串。

    由以上特点可以总结出cookie的特点是不安全,不会对服务器造成压力。 

没有特殊要求的话session和cookie都可以使用,但是当涉及到安全性较高时,要选择session。