繁体   English   中英

页面之间的数据:$ _SESSION vs. $ _GET?

[英]data between pages: $_SESSION vs. $_GET?

好的,首先,这不是关于表单,这是关于用户浏览网站时的一致布局。

让我解释:

如果我们想象一个(非ajax)数码相机在线商店,说有人在DSLR部分并指定以图库模式查看相机并按价格订购。 然后他们点击Compact相机的页面。 如果他们选择的“观点”我们被转移到这个新页面,那将符合用户的利益。

现在,我要说使用会话 - 我错了吗?

我是否应该注意一些小会话变量的性能问题(即view = 1,orderby = price)?

说到表演,两种解决方案都不应该有太多问题。

有些事情需要考虑:

  • 使用GET,如果URL被复制粘贴(在电子邮件或MSN中) ,另一个将接收URL的人将具有相同的GET参数
    • 这是件好事还是没有?
  • 另一方面,如果URL被复制粘贴,则不会共享会话
    • 这意味着第一个人会对另一个人说“ 钥匙,看看这个 ”,第二个人不会看到同一页; 我应该添加书签相同的东西。
  • GET特定于每个URL
    • 虽然SESSION在用户的所有选项卡中共享
    • 这意味着,如果您不使用Session,那么同时使用多个选项卡进行浏览会导致麻烦

我会说两者同时使用。 将其存储在会话中,但也将其放在页面的get参数中。

为什么? 通过这种方式,用户可以在页面之间携带他的选项,但是他们也在URL中,因此如果他将搜索结果发送给他的朋友,他的朋友就会以与他完全相同的方式看待他们。

不,通过将那些小变量放在那里,会话的性能不会降低。 除非您在会话中存储单片数组,否则加载会话的绝大部分时间都将从其存储介质(文件,数据库,内存缓存等)中读取它。

你应该在你的情况下使用GET。

Web开发中有一个简单的规则:每个包含不同内容的页面都必须拥有自己的地址。 因此,客户可以将任何页面保存到收藏夹中,然后将其发送到frend。 在底部是痛苦的,然后有人向您发送指向特定页面的链接,说“看!” 但网站使用框架,你登陆首页,不知道在哪里看。

您可以将用户的偏好保存到他的个人资料/ cookie(不是会话)中,但也应该反映在地址栏中。

用于完全不同目的的会话,购物车就是一个例子。

这是一个主观问题,无论哪种方式都可以。

我个人会选择会话,因为它不会干扰URL,所以人们可以根据需要为网址添加书签。

然而,对于那个问题的论点是,如果它们为它添加了书签,如果使用$ _SESSION完成,它们可能会看到不同的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM