在php中使用session.Use_cookies

在php中使用session.Use_cookies,php,session,Php,Session,我已经四处搜索了一下,如果我更改会话的值,会对php会话产生什么影响。使用cookies将设置为true或设置为false,但似乎对它的工作方式没有影响 会话的用途是什么。在php中使用cookies以及为什么需要它?阅读将大大回答您的大部分问题 简单地说,不使用cookie将迫使您确保用户为更改页面所做的每一个操作都必须传递会话id(否则,您将失去会话上下文):对于web链接、GET或POST表单、ajax调用等。session.use\u trans\u sid参数可以使用,但这并不总是足够

我已经四处搜索了一下,如果我更改
会话的值,会对php会话产生什么影响。使用cookies
设置为true
设置为false
,但似乎对它的工作方式没有影响

会话的用途是什么。在php中使用cookies
以及为什么需要它?

阅读将大大回答您的大部分问题


简单地说,不使用cookie将迫使您确保用户为更改页面所做的每一个操作都必须传递会话id(否则,您将失去会话上下文):对于web链接、GET或POST表单、ajax调用等。session.use\u trans\u sid参数可以使用,但这并不总是足够的。

这是您希望在客户端管理会话id的方式,如果设置(默认),会话id将存储在Cookie中,否则将作为GET变量在url中传递

你知道会话是如何工作的吗?如果没有,请阅读以下内容:@djot我已经看过了,但是这里提供的信息还不够充分,关于使用cookies的信息也不清楚。这不是必需的,但建议使用它。确实使会话劫持变得更加困难。如果可能的话,还可以添加这两个参数:
ini_set('session.use_only_cookies',1);+ini\u集('session.cookie\u httponly',1)
@PraveenD使用会话最简单的方法是将会话ID值添加到URL(在查询字符串部分)。如果不使用cookies将会话标识符来回传输到客户端,就会发生这种情况。您使用cookie来“隐藏”会话ID。您仍然可以发现它,但它不会出现在URL中,会话劫持将更加困难。因此,使用cookie作为会话标识符相当于通过模糊技术实现的安全性。HTTP是一种无状态协议。如果未使用ID跟踪特定客户端,则所有会话数据都必须作为cookies发送。我设置session.use_cookies=0并重新启动apache服务器。但这对会话功能没有影响。如果我在浏览器中禁用cookie,则可以使用echo SID访问会话id,但print_r($_session)返回空数组。浏览器不发送cookie意味着php无法关联会话数据,$_session为空。如果浏览器发送cookie,php将获取名称为SID的cookie,获取此cookie的值,并使用此值检索会话数据并将其放入$\u会话中。如果没有cookie,php必须通过另一种方式(get或POST)获取SID值$_会话['email']='praveen@gmail.com'; $_会话['name']='praveen';如果浏览器cookie被禁用,我将如何访问下一页上的姓名和电子邮件。你能举例说明吗?请阅读我上面给出的url上的文档。它将回答这个问题的大部分(提示:这是关于在url中使用sessiond的);你会得到会话数据吗?如果你对上面的答案感到困惑,请原谅,如果你使用session.use_cookies,你必须像这样在url中传递PHPSESSID=1。会话id名称取决于php.ini配置变量session.name=PHPSESSID。将url中的PHPSESSID作为get请求传递,现在可以使用$\u session['name']访问会话变量。如果我回答了你的问题,请告诉我。谢谢你的回答。它非常有用。