-3

我一直在尝试理解$_SESSION&$_COOKIE变量。我第一次尝试同时使用两者。我一直试图让它们同时工作,我猜会话会抛出 cookie ID 或反之亦然,无论如何你可以将 cookie 和会话一起用于同一目的以提高故障安全性吗?

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

在脚本中同时使用 COOKIES 和 SESSION 是否可行。如果有人离开购物车并返回没有从 SESSION 保存的信息并且 COOKIE 会保存此信息,那么在所有退出后销毁 SESSION 以清除任何个人信息等是多么安全……同时 cookie 会保存信息。这里的重点是让 COOKIE 保存数据,然后会话将在某个点后销毁 COOKIE 和会话。

4

3 回答 3

1

会话通常(但并非唯一)使用 cookie,但不同之处在于 PHP$_SESSION仅将一条信息保存到 cookie,即 PHP 会话 ID。其余信息存储在服务器上的 PHP 会话目录中,并且只能通过引用用户 cookie 中保存的 id 来调用。

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

于 2013-05-28T04:43:35.580 回答
1

首先要记住的是 HTTP 是一个无状态协议,这意味着在协议级别服务器收到请求,服务请求返回输出并忘记发生了什么。这意味着在请求之间必须记住的任何内容都必须在应用程序级别实现。

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

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

于 2013-05-28T04:52:15.593 回答
1

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

于 2013-05-28T04:41:22.410 回答