Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我必须做什么/设置才能保持浏览器';在多个IP之间的长时间会话?_Php_Apache_Session - Fatal编程技术网

Php 我必须做什么/设置才能保持浏览器';在多个IP之间的长时间会话?

Php 我必须做什么/设置才能保持浏览器';在多个IP之间的长时间会话?,php,apache,session,Php,Apache,Session,想象一下以下场景: 1) 用户来到一个站点 2) 用户将5种产品添加到网站上的购物车中: session_start() $\u会话['cart']=数组(1,4,7,12,20) 3) 用户关闭笔记本电脑的盖子,并将电脑置于睡眠状态 4) 8小时过去 5) 用户移动到另一个位置、另一个internet连接、另一个IP 6) 用户打开笔记本电脑的盖子,继续浏览 7)产品仍在购物车中 我们如何实现第7步能够/将会实现 session\u cart\u id(rand)设置cookie,其中sess

想象一下以下场景:

1) 用户来到一个站点
2) 用户将5种产品添加到网站上的购物车中:

session_start()
$\u会话['cart']=数组(1,4,7,12,20)

3) 用户关闭笔记本电脑的盖子,并将电脑置于睡眠状态
4) 8小时过去
5) 用户移动到另一个位置、另一个internet连接、另一个IP
6) 用户打开笔记本电脑的盖子,继续浏览
7)产品仍在购物车中

我们如何实现第7步能够/将会实现

  • session\u cart\u id(rand)设置cookie,其中session\u cart\u id独立于session、long living、persistent等(如用于登录的memberme cookie)
  • 存储在某处会话\u购物车\u id->购物车内容
  • 在会话启动时,如果设置了会话购物车id,则从商店加载项目

  • (1) 如果您运行
    suhosin
    ,请禁用ip检查(它在普通PHP中不存在)(2)将会话的垃圾收集器设置为您喜欢的时间(3)注意在共享服务器上其他垃圾收集器可能会干扰,在这种情况下,您更改配置以将会话存储在专用/不同的位置。您是否考虑实现自己的会话机制并将会话变量存储到数据库中?在这种情况下,会话不是要进行的。您应该只在其中存储少量数据,如
    user\u id
    password\u hash
    。会话在内部使用序列化,从而增加要存储的数据量。若您存储了大量数据,则会降低访问速度。此外,会话从一开始就用于单一用途(用户应该能够从一个IP访问内容),如果要存储此类数据,最终会违反
    SRP
    POLS