搜人/课程/问答
立即注册

全民编程开始了,你还在等什么?快来加入我们吧

已有账号,请 ,或用以下账号登录

QQ咨询

400-058-0010

意见反馈
回到顶部

问答 > 问答擂台 > 禁用cookie后还能使用session吗?

优才小秘书

优才小秘书

等级:用户等级

称号:

悬赏100分禁用cookie后还能使用session吗?

浏览器禁用cookie后还能使用session吗,为什么?

已结束

2014-08-28 17:07 赞(0) 回复(51)

共 51 个回复

  • 用户头像

    chenxinxin

    等级:用户等级

    称号:渐入佳境

    浏览器禁用cookie之后还可以使用session。因为cookie被禁止之后,可以通过url传递,在需要限制的页面的URL中都加上sessionid。服务器端在get到这个sessionid后,在session_start之前,设置一下得到的id就可以和用户进行关联,效果和cookie存sessionid一样。

    已采纳

    2014-08-29 09:25 赞(0) 回复(0)

  • 用户头像

    YHF_ECHO

    等级:用户等级

    称号:初窥堂奥

    可以。通过url传参

    2014-08-28 17:58 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-08-29 00:02 赞(0) 回复(0)

  • 用户头像

    方维

    等级:用户等级

    称号:炉火纯青

    可以使用前端缓存

    2014-08-29 11:20 赞(0) 回复(0)

  • 用户头像

    风之子163

    等级:用户等级

    称号:初学乍练

    可以,session是在后台服务器存在的,而cookie是浏览器设置的,两者并不相关

    2014-08-29 11:21 赞(0) 回复(0)

  • 用户头像

    rete

    等级:用户等级

    称号:登堂入室

    三个解决方法,1.用session_id()函数实现各页面回话ID共享2.使用系统常量SID,3.在php.ini中将use_trans_sid设为1,但这个方法不安全

    2014-08-29 18:31 赞(0) 回复(0)

  • 用户头像

    果慕

    等级:用户等级

    称号:登堂入室

    可以  session是存在服务器端的

    2014-08-29 19:06 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-08-30 00:04 赞(0) 回复(0)

  • 用户头像

    EYTest

    等级:用户等级

    称号:初窥堂奥

    不能

    2014-08-30 07:57 赞(0) 回复(1)

  • 用户头像

    恶魔峰印

    等级:用户等级

    称号:自成一派

    可以,在PHP中,可以通过相关配置,让Session不以来Cookie而存在

    2014-08-30 09:52 赞(0) 回复(0)

  • 用户头像

    Weiyong

    等级:用户等级

    称号:渐入佳境

    可以,session在服务器端

    2014-08-30 19:25 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-08-31 00:50 赞(0) 回复(0)

  • 用户头像

    胥胜艳

    等级:用户等级

    称号:初窥堂奥

    能 ,cookie只是介于客户端的,而页面相互传递的是sessionid ,我们可以将sessionid值 通过使用get传参 到需要的 界面,到相应界面接受sessionid值 就可以

    2014-08-31 11:36 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-01 00:14 赞(0) 回复(0)

  • 用户头像

    繁婲凋落の靑舂

    等级:用户等级

    称号:炉火纯青

    可以用,session是服务器端的,cookie是客服端的。

    session通常是借助于session cookie来和客服端交互的。如果客户端禁用cookie,seesion还可以通过url的方式来和客户端交互。

    2014-09-01 11:19 赞(0) 回复(0)

  • 用户头像

    woxhwxl

    等级:用户等级

    称号:登堂入室

    应该可以吧

    2014-09-01 15:45 赞(0) 回复(0)

  • 用户头像

    李奎

    等级:用户等级

    称号:渐入佳境

    可以使用。客户端禁用cookie之后,会通过url传递session_id参数到服务。

    2014-09-01 19:59 赞(0) 回复(0)

  • 用户头像

    南宫学渊

    等级:用户等级

    称号:略有小成

    可以使用。

    2014-09-01 22:21 赞(0) 回复(0)

  • 用户头像

    Mr_xu

    等级:用户等级

    称号:略有小成

    可以

    2014-09-01 23:32 赞(0) 回复(0)

  • 用户头像

    马莹

    等级:用户等级

    称号:初窥堂奥

        在php中是可以的 因为关闭cookie功能 即便不能在cookie中保存sessionID但是可以在URL中传递sessionID 只要sessionID相同就可以找到服务器端相应用户的文件。
    回答完毕!

    谢谢

    2014-09-02 09:07 赞(0) 回复(0)

  • 用户头像

    常州沈超

    等级:用户等级

    称号:渐入佳境

    可以的 

    2014-09-02 09:42 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-02 10:29 赞(0) 回复(0)

  • 用户头像

    houhou1

    等级:用户等级

    称号:初学乍练

    Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么 禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session了。


    在PHP中,通过相关的配置,可以让Session不依赖Cookie而存在。这是因为:

           Session,储存于服务器端(默认以文件方式存储Session),根据客户端提供的Session ID来得到用户的文件,取得变量的值,Session ID可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的URL的“?”后面的部分)来传送给服务器,然后服务器 读取Session的目录……。也就是说,Session ID是取得存储在服务上的Session变量的身份证。当代码session_start();运行的时候,就在服务器上产生了一个Session文件, 随之也产生了与之唯一对应的一个Session ID,定义Session变量以一定形式存储在刚才产生的Session文件中。通过Session ID,可以取出定义的变量。跨页后,为了使用Session,你必须又执行session_start();将又会产生一个Session文件,与之对应 产生相应的Session ID,用这个session id是取不出前面提到的第一个Session文件中的变量的,因为这个Session ID不是打开它的“钥匙”。如果在session_start();之前加代码session_id($session id);将不产生新的Session文件,直接读取与这个id对应的Session文件。

           PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。必须注意的是:Session不一定必须依赖Cookie,这也是 Session相比Cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID附着在URL中,这样再通过Session ID就能跨页使用Session变量了。但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1“,或者编译时打开打开了“--enable-trans-sid”选项。

    2014-09-02 18:29 赞(0) 回复(0)

  • 用户头像

    庄永赐

    等级:用户等级

    称号:渐入佳境

    session跟浏览器禁不禁用cookie无关的,cookie是客户端保存用户数据的机制,session是服务器端保存数据的机制,所以客户端禁用cookie后是影响不到服务器端是否启用session

    2014-09-03 00:22 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-03 08:22 赞(0) 回复(0)

  • 用户头像

    林健祥

    等级:用户等级

    称号:自成一派

    cookis是在客户端的,session是在服务器端的,就算你禁用了cookis,也是不影响session的。

    2014-09-03 09:52 赞(0) 回复(0)

  • 用户头像

    春强的微博

    等级:用户等级

    称号:登堂入室

    能!

    cookie是存储在客户端的,而session是存储在服务器端。

    当客户端禁用cookie后,不会对session的使用产生影响。

    2014-09-03 21:38 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-04 00:08 赞(0) 回复(0)

  • 用户头像

    NirMao

    等级:用户等级

    称号:登峰造极

    2014-09-04 08:21 赞(0) 回复(0)

  • 用户头像

    RoseLi

    等级:用户等级

    称号:渐入佳境

    Session和Cookie的区别就是,一个将所有数据存在客户端,一个将数据存在服务器的保管箱中,然后将保管箱号码(Session Id,唯一)存在客户端(Cookie也有一个cookieID)。

    一般Session会依赖Cookie,Session Id还是用Cookie存起来的,当然也有通过url存储的(一些古老的论坛,会在所有url后面加s=xxxxxxxxx,这个就是以url参数存储),但成本比较大(需要修改各处链接)。


    所以一般情况下不能用了,因为sessionId保存在cookie里.但如果你非要禁用cookie,你可以把sessionId文件化,比如说,你可以保存在XML文件里或者是直接保存在数据库里,需要的时候再从文件中取一下,一般都不会这么做,因为没必要.

    2014-09-04 16:24 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-05 01:37 赞(0) 回复(0)

  • 用户头像

    jatvsjat

    等级:用户等级

    称号:登堂入室

    不能了!  Session是依靠cookie存在的。

    2014-09-05 16:42 赞(1) 回复(1)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-06 00:03 赞(0) 回复(0)

  • 用户头像

    宁鹏飞

    等级:用户等级

    称号:初学乍练

    能,因为session 是存在服务器端的。

    2014-09-06 10:42 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-07 00:02 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-08 00:02 赞(0) 回复(0)

  • 用户头像

    elyer

    等级:用户等级

    称号:功行圆满

    该答案暂不公开

    2014-09-09 00:17 赞(0) 回复(0)

  • 用户头像

    李玉龙

    等级:用户等级

    称号:登堂入室

    不能

    2014-09-09 10:48 赞(0) 回复(0)

  • 用户头像

    小牛

    等级:用户等级

    称号:初学乍练

    能用,因为可以使用url进行传输!

    2014-09-10 11:43 赞(0) 回复(0)

  • 用户头像

    Mr_xu

    等级:用户等级

    称号:略有小成

    可以

    2014-09-10 14:07 赞(0) 回复(0)

  • 用户头像

    辛星

    等级:用户等级

    称号:登堂入室

    为何会暂不公开呢。。

    2014-09-13 04:34 赞(0) 回复(0)

  • 用户头像

    学糕

    等级:用户等级

    称号:略有小成

    Session(会话状态)它是asp.net的内置对象,在服务器端存有用户的个人信息,用来唯一表示一名用户。当用户登录服务器的时候,系统会自动合建一个Session,它可暂存用户的首选项如登陆名,时间,状态以及其它实时信息(如购物车信息)。当Session到期或你关闭浏览器,服务器将终止Session。

    Cookie(网上信息数据块)它是asp.net内置对象request和response中的集合。它在在于你机器上的一个文件夹里,每个有唯一的名字标识。是服务器用于跟踪用户信息、存储用户信息的文件。它可含有web站点地址信息,用户登陆次数信息,用户登陆信息,cookie过期时间等内容。

    当用户每次连接服务器时,服务器可以用response.cookie["名称"]=值的方式把Session中所有的信息写入cookie里,服务器也可用request.cookies来访问cookie的值,这种方式可以把cookie内容传回服务器做处理并管理 session对象。

    由于 cookie和服务器和session联系紧密,所以当cookie关闭,session作用已经不大了。

    2014-09-13 18:18 赞(0) 回复(0)

  • 用户头像

    az999

    等级:用户等级

    称号:渐入佳境

    可以,因为cookie是在浏览器端,而session是在服务端,两个没必然关系吧。

    2014-09-28 11:22 赞(0) 回复(0)

  • 用户头像

    xiaohuizol

    等级:用户等级

    称号:略有小成

    正想知道这个答案呢

    2014-09-28 12:28 赞(0) 回复(0)

  • 用户头像

    阿山

    等级:用户等级

    称号:初窥堂奥

    当然可以使用了。cookie是客户端存放的暂时保存数据的容器,session是存放在服务端的。两者之间是没有关系的

    2014-09-28 12:46 赞(0) 回复(0)

  • 用户头像

    zeke

    等级:用户等级

    称号:渐入佳境

    可以使用,session是服务器的,cookie是存在客户端

    2014-10-11 09:30 赞(0) 回复(0)

  • 用户头像

    feelings

    等级:用户等级

    称号:已臻大成

     

    2014-12-31 10:27 赞(0) 回复(0)

  • 用户头像

    无后仰

    等级:用户等级

    称号:初窥堂奥

    自己试一试

    2015-01-07 16:03 赞(0) 回复(0)

  • 用户头像

    许召召

    等级:用户等级

    称号:略有小成

    使用前端进行

    2015-06-09 19:58 赞(0) 回复(0)

  • 用户头像

    bjbs08

    等级:用户等级

    称号:初学乍练

    可以  cookie是在客户端上的  session是服务器上的

    2015-07-11 16:03 赞(0) 回复(0)

  • 用户头像

    chenwenbin

    等级:用户等级

    称号:初学乍练

    浏览器禁用cookie之后还可以使用session。因为cookie被禁止之后,可以通过url传递,在需要限制的页面的URL中都加上sessionid。服务器端在get到这个sessionid后,在session_start之前,设置一下得到的id就可以和用户进行关联,效果和cookie存sessionid一样

    2015-10-08 16:17 赞(0) 回复(0)

回复帖子

登陆 才能回复哦……

头像 chenxinxin

擂台规则

  • 1 . 第一个最佳答案会被选为擂主。
  • 2 . "答"擂者只能看到自己的答案,擂主确定后开放上期的全部答案。
  • 3 . 成为擂主可获得100积分奖励。
  • 4 . 参与者回答问题可得10积分奖励。