我正在开发一个PHP应用程序,用户可以根据4个不同的类别过滤搜索结果。切换类别会影响 GET 变量page_type
。
在我的情况下,每个类别的字段在浏览页面时都需要保持不变(它们存储在会话变量中),但是如果page_type
发生更改,则会话变量需要要取消设置,以便用户不需要花时间删除最后一个类别中的所有旧数据。
有人可以帮我找出一种方法来比较旧的 GET 变量与新的变量吗?如果这是不可能的,那么有没有一种有效的方法来实现我想要做的事情?
答案 0 :(得分:1)
同时将page_type
保留在会话中,并在每个页面上检查它。如果它不同,请取消会话并执行您需要的任何操作。
答案 1 :(得分:0)
您必须在页面导航链接中浏览搜索所需的所有信息(类别的所有“字段”)。如果您将数据存储在会话中,那么BACK按钮将无法正常工作。 (回击将返回页面,但会话变量中存储的字段会发生变化)。
或者 - 您可以使用键控数组在会话中存储字段,这样会话变量将根据field_type单独存储
$_SESSION['search_fields'][$_GET['page_type']] = $fields_array
同样,您不应该使用$ _SESSIONS,因为您正在占用服务器资源,为通过谷歌(或其他外部链接)访问该页面的用户创建会话,而不会去其他任何地方。此外,一个好的搜索引擎应该在第一页上给用户他们想要的东西: - )