zoukankan      html  css  js  c++  java
  • 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'];
    ?>
    
    • SESSION使foreachsessionprintr(_SESSION是数组,可以使用foreach遍历全部session变量,或`print_r(_SESSION);`
    • 删除会话变量`unset($_SESSION[‘name’]);
    • 删除多个会话变量$_SESSION=array();
    • 彻底销毁Sessionsession_destroy();

    总结

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

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

    以上内容均属原创,如有不详或错误,敬请指出。
    
  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】
    Pycharm集成Python编程环境IDE
    每天前进一厘米如何快速迎头赶上
    终于开博
    大家觉得我有理,可以赞扬一下,觉得无理,可以骂一下。
    好久没有见到有人谈论代码生成器了
    看了FxCop工具
    关于30岁的“青春饭”问题的看法。
    更改后缀为.dex文件为.odex文件 让你的程序瘦身 运行更稳定
    HTC Sensation亲测 修改gps.conf 教你显著提高GPS定位速度
  • 原文地址:https://www.cnblogs.com/bad5/p/13232812.html
Copyright © 2011-2022 走看看