Cookie与Session(以php为例)

COOKIE

SetCookie函数

添加cookie

i.($name,$value,$expire,$path,$domain);

ii.$name:cookie的名称

iii.$value:该cookie的值

iv.$path:中有一个关于路径的设置,比如说设置为当前路径,那么意思就是在服务器只有当前路径的.php文件才能读到cookie

v.$domain:有效域名,该cookie只在该域名下有效(可以访问)

vi.$expire:该cookie的过期时间过期后,该cookie会被自动删除

删除Cookie

让cookie文件过期即可

在php中setcookie之前是不能有输出的(echo )

修改cookie

重新设置cookie

路径要是不给,那么设置的就是当前路径,时间要是没有给,默认浏览器关闭时自动销毁

查询cookie

使用$_COOKIE[Cookie名称]

Session

1.什么是session?

  a)一种会话技术

   b)保存在服务器的一个文件,文件当中保存着之前访问的信息

   c)Session的查询是基于sessionid号的

2.Session的原理

  a)用户第一次来访问服务器的时候,把登陆信息存储到服务器上的一个Session文件当中,并且产生一个sessionid号,并且会向客户端浏览器发送一个产生cookie文件的请求,将该sessionid号存储到该cookie当中,用户第二次过来访问服务器的时候,携带拥有sessionid号的cookie一起来访问服务器,服务器根据cookie当中的sessionid号找到对应的session文件,从而获取到对应信息.

   c)Session的查询是基于sessionid号的

3.Session的操作:

a)添加sesion

Session的声明与使用

Session的设置不同于Cookie,必须先启动,在PHP中必须使用session_start()

session_start()函数的语法格式如下

Bool    session_start(void)

注意:session_start()函数之前不能有任何输出

   Session以数组的形式使用

如:$_SESSION['session名']

正如这般

自己没有在服务器上找到session文件,还以为是出了啥问题

session_save_path()能够存储session文件的位置

这个函数必须要在session_start()之前

b)删除session

  晴空数据     $_SESSION=NULL;

                  $_SESSION=array();

                      unset

删除cookie文件

销毁session文件 

session_destroy

c)修改session

d) 查询session

默认情况下禁用cookie,session是不能使用的(阻止网站使用第三方文件.cookie),客户端没有含有sessionid号的cookie了,服务器端会不断地创造新的cookie

session是基于cookie的,sessionID是保存在cookie中的。

解决方法:

           i.我们可以在页面和页面之间用get传参?phpsessid=

            在这里我们不需要$_GET,$_REQUEST可以直接获得,自动获得这个参数!传递的参数不需要手动接收,

      也就是

           退出的时候类似。

            然而session_name()=session_id()

            太长,可以用SID来代替(没有禁用是空值)

           session.use_only_cookies=1--->0

 Cookie与Session的区别         

         Cookie是保存在浏览器中的

         Session是保存在服务器中

          Cookie设置值的时候不能直接对数组$_COOKIE进行设置,而是通过函数setcookie对cookie进行设置,而session直接使用数组设置即可,但是前提是必须要开启session_start()

          cookie删除的时候需要使用setcookie对cookie的值设置为过期,而session直接将$_SESSION请空即可

session_start细节

当执行session_start()的时候 php会自动isset($_COOKIE['PHPSESSID']) true 的话 会去session池里寻找这个session是否存在,存在的话取出session,否则session失效 false 话会在session池里自动生成一个session,然后把COOKIE里PHPSESSID的值设置为 session_id

        

原文地址:https://www.cnblogs.com/clearlove/p/4954922.html