$ _SESSION& $ _COOKIE PHP TOGETHER OR NOT

时间:2013-05-28 04:38:12

标签: php session cookies

我一直在努力理解$_SESSION& $_COOKIE个变量。我第一次尝试将两者结合使用。我一直试图让他们同时工作,我想会议会抛弃cookie ID或反之亦然,无论如何你可以一起使用cookie和会话以达到同样的目的更加安全吗?

我有登录脚本接收确认用户登录页面我们她/他(用户)可以看到他们的数据库记录行的特定记录。现在,从这里是一个链接,将他们带到一个订单页面,现在在最初设置数组后传递会话/ cookie(我假设的会话)...我如何拉出传递的会话并允许他们仍然保持数据库连接到他们的文件,以便他们可以订购和添加数据,或者我是否需要再次连接到数据库?从user={$_SESSION['user_id']};尝试但在MySQL命令语句中没有用。

在ONCE中使用COOKIES和SESSIONS一起编写脚本,是否可行。如果有人离开购物车并返回没有从SESSION保存的信息,COOKIE会保存这个,HOWERVER可以安全地在所有EXITS之后删除会话以清除任何个人等等......同时cookie将保存信息。这里的点可以用来保存数据,然后这些会议将会使COOKIE和SESSION失效。

3 个答案:

答案 0 :(得分:1)

$_SESSION视为服务器而非客户端计算机上的cookie。我喜欢CodeIgniter将会话ID存储在数据库中,并将会话ID存储在cookie中的方法。简单,安全的持久性。

答案 1 :(得分:1)

会话通常(但不是唯一)使用cookie,但区别在于PHP $_SESSION仅将一条信息保存到cookie,PHP会话ID。其余信息存储在服务器上的PHP会话目录中,仅通过引用用户cookie中保存的id来调用。

另一方面,

$_COOKIE实际上以纯文本格式将数据写入本地计算机的cookie,并根据需要调用该数据。 $_COOKIE数据是持久的(取决于最终用户的浏览器设置),而$_SESSION(至少默认情况下不是)。

答案 2 :(得分:1)

首先要记住的是,HTTP是一种无状态协议,这意味着在协议级别服务器获取请求,服务请求返回输出并忘记发生的事情。这意味着在请求之间必须记住的任何事情都必须在应用程序级别实现。

Cookie从客户端来回传递到服务器,如果您愿意,可以将其视为客户端或服务器可读写的共享状态。

会话是由特定cookie值标识的服务器端存储(或者可能是某种其他类型的请求参数,会话ID也可以在get请求中传递)。因此它仅供服务器读取和写入。存储在cookie中的会话ID仅存在,以便服务器可以识别客户端并将其与请求请求的服务器端存储结合起来。