zoukankan      html  css  js  c++  java
  • PHP中的session

    来自博客园

    1.初始化(使用session前都要使用,一个页面用一个就可以了)

    session_start();

    2.保存

    $_SESSION[$sessionName]=$value;

    (value可以是double,bool,int,数组,object类型的数据)

    例子:

    $_SESSION['LoginUser']="zs";

    3.取出指定

    例子:

    $uName=$_SESSION['LoginUser'];

    4.删除指定

    例子:

    unset($_SESSION['LoginUser']);

    5.删除全部session(删除当前浏览器对应的session文件)

    session_destroy();

    6.获取session_id

    $session_id=session_id();

    $session_id=SID; //常量

    PHP中SESSION使用中的一点经验总结(来自脚本之家)


    SESSION会话开启时,会首先发送一个对浏览器的唯一标识session_id的cookie(名字为PHPSESSID可以通过session_name()获取),同session.save_handler = files的情况下,在服务器的指定目录(如temp)下生成一个没有后缀的文件,名字是

    复制代码代码如下:

    'sess_" + 'session_id'; 


     
    这样就完成了基本的设置。那么在下一次发起http请求时,首先浏览器会发送这个当前域名下的所有cookie名字和值过去,这样服务器就能根据cookie中的session_id来去读取session文件,而不会混淆这个session属于谁。 

    这一步具体如下: 

    SESSION发送一个对浏览器的唯一cookie变量session_id,这个session_id变量有名字、有值。变量名(name)默认为PHPSESSID,变量值(value)为apach随机生成的字符串,类似rvag9m368vim7k8g4v7k2ank70 。通常说的session_id其实是指这个唯一的字符串rvag9m368vim7k8g4v7k2ank70。 

    具体的在FF的HTTP响应头下如此: 


    session_start(); 
     在程序中上面一句就完成了上面的功能,假如浏览器没有发送PHPSESSID的cookie过来就发送一个过去,有就读取这个cookie,这样就能维持同一个会话。 

    好了既然知道了session的工作原理,那么我们可以推测到假如服务器端sess_rvag9m368vim7k8g4v7k2ank70 这个文件我们手动删除了,那么session失效,假如浏览器cookie失效,那么session照样失效。

    下面来自百度知道 :

    Session用来追踪每个用户的会话,使用服务器生成的SessionID进行标识,用以区分用户。Session存放在服务器的内存中,SessionID存放在服务器和客户机的Cookie里面。这样,当用户发出请求时,服务器将用户Cookie里面记录的SessionID和服务器中的SessionID进行比对,从而找到这个用户对应的Session进行操作。所以,如果客户机禁止Cookie的话,Session也不能使用。

    相关函数:http://www.itlearner.com/code/php/group.php-54.php





  • 相关阅读:
    C# 关键字总结
    C# .NET、Mono、跨平台 的简单介绍
    Leetcode---剑指Offer题15---二进制中1的个数
    Leetcode---剑指Offer题14---剪绳子
    C# string方法总结
    Unity XML的使用
    C# 文件类总结 File、Directory、FileStream、StreamWriter、StreamReader
    自定义博客园---固定推荐反对到右下角
    自定义博客园---返回顶部
    CentOS 安装Python3.x常见问题
  • 原文地址:https://www.cnblogs.com/perseverancevictory/p/3661731.html
Copyright © 2011-2022 走看看