2

可能重复:
Cookie VS 会话
PHP:Cookie 和会话如何工作?

我正在努力学习 PHP。我有一个项目网站,其中不断生成数字,并更改并存储在 javascript 变量中。除了在用户点击“存储到数据库”按钮时将这些变量存储到数据库之外,几乎没有涉及 php。今天我正在使用该网站,导航到另一个网站并返回,我的所有数据都消失了,因为我没有先将其存储到数据库中。我想保存该数据,以便在我离开页面时重新填充。这样做的最佳方法是什么?php 会话、cookie 或 javascript cookie?请指教,提前谢谢!

4

5 回答 5

7

php 会话、cookie 或 javascript cookie?

有会话或 cookie,所以有件事而不是三件事。

现在会话也是一个 cookie,但保存在服务器上,这与保存在用户机器中的简单 JS cookie 不同。

我想保存该数据,以便在我离开页面时重新填充

如果是敏感信息,请始终使用数据库存储,如果不是敏感数据:

  • 使用cookies或localStorage但它可以被用户删除
  • 使用用户无法删除但会根据 php.ini 设置过期的会话

另一方面,要永久保存它,请改用数据库。

于 2012-07-06T20:27:09.457 回答
3

PHP 和 Javascript cookie 是一回事,它们只是存储在客户端的数据,php 和 javascript 是用来存储它们的技术,仅此而已。

由于 PHP cookie 只能在输出发送到页面之前设置,因此 Javascript cookie 似乎是最好的。

您将使用 cookie 而不是会话,因为您提到您将离开页面,在这种情况下会话将终止并且您将丢失数据。

于 2012-07-06T20:27:08.020 回答
1

当您想临时存储一些数据时使用会话(对于一个会话 - 直到用户关闭他的浏览器)。

当您想要更长时间地存储数据(如登录凭证)时,请使用cookie 。

您还应该记住,用户可以更改存储的 cookie 的值,但不能更改会话,因为会话存储在服务器上,而 cookie 存储在客户端的计算机上。

于 2012-07-06T20:25:55.937 回答
1

我相信 cookie 是您需要的答案,因为 php 会话仅存储在页面加载之间,因此您已经有效地将数据发送回服务器(不是您想要的),据我所知,javascript cookie 只是 cookie 集用javascript。

因此,为了澄清,我认为您应该在每次创建一些数据时设置一个 cookie(通过使用 javascript) - 它将本地存储在浏览器上(仍然相当不稳定),直到用户按下保存按钮,它将被发送回服务器。

于 2012-07-06T20:26:31.257 回答
-2

如果您想长期存储 PHP cookie,但不关心用户是否更改值。

如果您不希望用户能够更改值但不需要长期存储,则 PHP 会话(这听起来像您想要的)

如果您想长期存储并且不希望用户有权更改值,则会话和 cookie 都可以。您可能希望使用数据库,以便您可以使用数据库检查 cookie 信息以查看它是否正确,然后将数据存储在会话中以便于访问。

这是有多少网站“记住用户”。他们存储一个带有用户名和密码的 cookie,然后当用户访问该网站时(如果未设置会话),他们会使用数据库检查用户名和密码,然后如果它是正确的,他们会创建一个特定于该用户的会话。

于 2012-07-06T20:25:55.667 回答