PHP学习—Cookie&Session


Cookie

Cookie相关概念

  • Cookie:以文件的形式存储在客户机上相关数据信息,用来识别和跟踪用户的机制
  • Cookie是保存在用户硬盘上的数据文件,被浏览器读取,当用户再次访问浏览器时自动读取这些信息,如上次访问的时间、位置、用户名、密码等,为用户提供方便
  • Cookie是用生命周期的,Cookie可以建立也可以删除

PHP操作Cookie

建立Cookie

  • 语法:bool setcookie(string $name[,string $value[,int $expire=0[,string $path]]])
  • $name是Cookie名
  • $value是Cookie值
  • expire是有效时间不设置保存时间则浏览器关闭即删除Cookie
  • $path是Cookie保存的路径
setcookie('a','123',time()+3600)  //cookie名为a,值为123,保存时间为1小时
cookie当时设置,不会当时生效

访问Cookie

  • 通过$_Cookie[‘cookiename’]来访问Cookie
  • setCookie(‘name’,‘Bad’)则在浏览器关闭时删除Cookie

js操作Cookie

  • javascript中设置Cookie的代码和PHP的方法类似
    • document.cookie=cookiename+'='+value+';expires='+time

获取客户端分辨率的代码

<script type="text/javascript">
	document.cookie='x='+screen.width;
	document.cookie='y='+screen.height;
</script>

PHP接受

<?php
if (isset($_POST['button'])){
    
    
	echo $_COOKIE['x'];
	echo $_COOKIE['y'];
}
?>
  • php运行在服务器端无法获取客户端分辨率
  • 可以用于根据分辨率显示不同大小的界面

显示分辨率

<script type="text/javascript">
    document.cookie='xx='+screen.width;
    document.cookie='yy='+screen.height;

<form id="form1" name="form1" method="post" action="">
    <input type="submit" name="button" id="button" value="显示分辨率" />
</form>

<?php
if (isset($_POST['button'])){
    
    
    echo $_COOKIE['xx']."<br />";
    echo $_COOKIE['yy']."<br />";
}
?>

总结

  • Cookie保存在客户端而非服务器
  • Cookie有生命周期
  • 可以设置过去的时间用于删除Cookie
  • JS可以操作Cookie,用户获取客户端的某些信息,再通过PHP传给服务器

Session

  • Session会话,是有始有终的一系列动作/消息
  • 在计算机中是指一个终端用户与交互系统进行通信到退出系统所经历的过程
  • Session是保存在服务器上的,客户端每次登陆到服务器,服务器都会为每个登陆的客户机生成唯一的一 个Session_ ID ,这个Session_ ID会在服务器中自动注销。重新登陆时会再重新生成一个Session_ ID
  • 浏览器开启登录到某网页,到关闭浏览器这是一个会话过程
  • 在PHP中使用session_ start()启动会话,它的作用就像是在服务器上建立一个临时文件保存会话信息
  • 也可以在php.ini中将session.auto_start设置为1来自动启动会话,默认值是0

下面的代码注册会话

<?php
	session_start();  //启动会话
	$_SESSION['name']='';  //创建会话变量
?>
  • 使用会话
<?php
	session_start();
	if (isset($_SESSION('name')))
		echo $SESSION['name'];
?>
  • S E S S I O N 是 数 组 , 可 以 使 用 f o r e a c h 遍 历 全 部 s e s s i o n 变 量 , 或 ‘ p r i n t r ( _SESSION是数组,可以使用foreach遍历全部session变量,或`print_r( SESSION使foreachsessionprintr(_SESSION);`
  • 删除会话变量`unset($_SESSION[‘name’]);
  • 删除多个会话变量$_SESSION=array();
  • 彻底销毁Sessionsession_destroy();

总结

  • 比Cookie更安全,保存在服务器端
  • 马上生效,不会滞后
  • 可以在多个页面之间传递消息,可以用于安全登录
  • 可以启动、生成变量、销毁变量
  • 可以保存到数据库

无论是SESSION还是Cookie在使用时最好先判断一下是否存在

以上内容均属原创,如有不详或错误,敬请指出。

猜你喜欢

转载自blog.csdn.net/qq_45668124/article/details/106921845