php中cookie和session的问题

前言:之前关于客户端cookie和服务端session的关系有点模糊,认为cookie禁用后session指定不能用了,通过验证后才发现自己的错误。

1:在php环境中的php.ini中有关session的设置值:

        //处理session存取的模式        
        session.save_handler = files
        
        //session档案存放路径
        session.save_path = /tmp
        
        //session使用cookie的功能,启动: 1
        session.use_cookies = 1
        
        //session名字
        session.name = PHPSESSID
        
        //自动启动;0:关;1:开启
        session.auto_start = 0
        
        //session使用cookie的生存期,以秒为单位
        session.cookie_lifetime = 0
这些默认值,不需要修改,就可以使用session了。

2:但是当我们得浏览器禁用cookie时,则会出现你认为的样子,session不能用。
    此时我们应该在php.ini中再去研究一下发现
    session.use_trans_sid = 1//这个字段允许SessionID通过URL明文传输
     session.use_only_cookies = 1 ; // 开启仅使用cookies存放会话id
    此时再去测试发现session又获取到了。
    但当  session.use_only_cookies =0;时,无法获取到session的,在php.ini中这个值默认是0
3:代码:①当浏览器没有禁用cookie时:
a.php:
    <?php
    session_start();
    $_SESSION[‘url‘] = ‘
    $url = "<a href=‘./b.php‘>下一个页面</a>";
    echo $url;
     ?>
    
 b.php
     <?php
         session_start();
         echo "session中url是:".$_SESSION[‘url‘];
     ?>
     
     
     ②当浏览器禁用cookie后,并且设置php.ini中
     session.use_trans_sid = 1//这个字段允许SessionID通过URL明文传输
     session.use_only_cookies = 1; // 开启仅使用cookies存放会话id
     代码:
  
  a.php
       <?php
    session_start();
    $_SESSION[‘url‘] = ‘
    $name = session_name();
    $id = session_id(); 
    $url = "<a href=‘./b.php?".$name."=".$id."‘>下一个页面</a>";
    echo $url;
     ?>
     
  b.php
  
    <?php
        session_id($_GET[‘PHPSESSID‘]);
         session_start();
         echo "session中url是:".$_SESSION[‘url‘];
     ?>

以上是我对cookie和session的理解,如有不对,可以留言,一起学习,进步。

时间: 2024-10-26 16:29:34

php中cookie和session的问题的相关文章

PHP 中cookie 和 session 的分析

1. PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制.     PHP 在http 协议的头信息里发送cookie,因此  setcookie()     函数必须在其它信息被输出到浏览器 前调用,这和对  header()    函数的限制类似. 1.1 设置cookie: 可以用 setcookie()或 setrawcookie()函数来设置 cookie.也可以通过向客户端直接发送http  头来 设置.     1.1.1  使用 set

PHP中Cookie与Session的异同以及使用

Cookie与Session的异同: 一.cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范.网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies . 具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户

浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

var num = 1;    var str = '1';    var test = 1;    test == num  //true 相同类型 相同值    test === num //true 相同类型 相同值    test !== num //false test与num类型相同,其值也相同, 非运算肯定是false    num == str  //true 把str转换为数字,检查其是否相等.    num != str  //false == 的 非运算    num ==

关于缓存中Cookie,Session,Cache的使用

文章来源:http://canann.iteye.com/blog/1941173 以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application. 其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息. Session则保存对话信息.Application则是保存在整个应用程序范围内的信息,相当于全局变量. Session Session用来保存每一个用户的专有信息 Session的生存期是用户持续请求时间加上一段时间(一般是20分

关于HTTP中cookie 和session机制

前言 Cookie是由网景公司的前雇员Lou Montulli 在1993年发明的.向前辈致敬. 1. Cookie和Session介绍  Cookie 和Session 是为了在无状态下HTTP协议之上维护会话状态,使得服务器可以知道当前适合哪个客户在打交道.因为HTTP协议是无状态的,即每次用户请求到达服务器时,HTTP服务器并不知道这个用户是谁.是否登录过等.现在的服务器之所以知道我们是否已经登录,是因为服务器在登录时设置了浏览器的Cookie!Session则是借由Cookie而实现的更

servlet中cookie和session操作

1.1 软件中的会话 一次会话: 打开浏览器 -> 访问一些服务器内容 -> 关闭浏览器 登录场景: 打开浏览器 -> 浏览到登陆页面 -> 输入用户名和密码 -> 访问到用户主页(显示用户名) 修改密码(输入原密码) 修改收货地址 ....... 问题:在此处登录会话过程中产生的数据(用户会话数据)如何保存下来呢? 购物场景: 打开浏览器 -> 浏览商品列表  -> 加入购物车(把商品信息保存下来)  -> 关闭浏览器 打开浏览器->  直接进入购物

浅析PHP中cookie与session技术

1.cookie是什么? cookie指某些站点为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 通俗来理解就是,你去一个专卖店或者超市买东西,然后店里给你办一张会员卡,以后你的身份和购买信息都存在这个卡里.而这个卡放你身上.之后每次去买东西的时候仅仅须要刷卡就能够了.不用再登记或者记录其它的信息. 然后将这段话映射了web上,超市结账台就是server端,而你自己就是client,你身上所带的卡也就是存在client中的cookie文件.里面记录了你的帐号

nodejs中cookie、session的使用

因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如何配置使用cookie及session. cookie 首先是app.js中的配置: ... var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); ... app.use(cooki

关于《Node.js 包教不包会》中cookie 与 session的补充

刚开始学node,在看到Lesson 16: <cookie 与 session>中关于在 redis 中存储 session中,直接按照博主的代码是不能运行的,当时很苦恼,挺郁闷的,直接copy都运行不了.... 经过一顿搜索以后才知道,要安装redis! redis的安装可以参考:http://blog.fens.me/linux-redis-install/  中的 2.Redis在Linux Ubuntu中安装 (我是成功安装,并且运行) 还有关于redis的常用命令,可以看一下:ht