当我向购物车添加内容时,可以立即看到会话。一旦我被重定向到购物车视图。会议消失了。
陌生的东西,如果我再次向购物车添加东西,它会更新正确的数量......所以很明显它仍在那里。
我不明白。
我正在使用CakePHP 1.3。我有一个名为CartsController
的控制器,其中有2个视图add
和index
。 add
视图需要将id的参数添加到购物车。因此,当您转到carts/add/1
时,它会将产品ID 1添加到购物车($ _SESSION),然后将您重定向到索引视图(/ carts)。
如果在重定向到索引视图之前在add()函数中添加后立即查看SESSION,则它具有正确的值。到达索引视图时,会话再次为空(它具有默认的Cake Config值,但我没有添加任何内容)。
这会让你相信在它被添加之间和重定向之后的某个地方会被破坏。但事实并非如此,因为如果您再次将项目添加到购物车,然后再次直接查看它,它将显示更高的数量(现在是2而不是1,然后是3然后是4等等。)但是如果您查看其他地方的会议,它不在那里。
有没有人知道这里会发生什么?
我想补充一点,它是第一次在您的浏览器中向购物车添加内容时按预定工作,但如果您将网站(通过外部链接)带入购物车中的某些内容并返回,则没有任何内容你的购物车,没有什么可以再添加 - 这就是上面提到的问题开始时。这种情况发生在Chrome,FF,IE中。
如果您想亲眼看看,请重现
的步骤您的购物车现在已空,您无法再向购物车添加任何内容
答案 0 :(得分:2)
第一次为HTTP连接创建cookie时,当您返回时,会有第二个用于HTTPS连接的cookie,该cookie仅发送回HTTPS连接。如果您使用相同的协议1(HTTP时间或两次HTTPS)访问该页面,您应该会看到您的购物车。
传递会话cookie一次不安全,一次安全可能会导致安全问题。我写了一篇关于在HTTP和HTTPS协议之间切换的文章:
Switching between HTTP and HTTPS pages with secure session-cookie
但也许通过安全的HTTPS连接更容易连接。
答案 1 :(得分:0)
您可能需要在购物车页面上调用session_start()
(或任何CakePHP包装函数)。