在页面之间保存URL参数?

时间:2011-04-08 20:37:11

标签: php javascript url variables web

我想在浏览时将变量存储在URL中。

例如: 一个菜单,当用户选择?category = shopping时,它会转到带购物的地图,他们可以点击一个地方,它应该转到?category = shop& id = 22。

如果他们返回菜单,那么应删除?类别,如果他们点击其他内容,例如?category = cafe。

我一直对此感到困惑,并感谢任何帮助 - 谢谢!

3 个答案:

答案 0 :(得分:1)

很好用于会话变量。

$_SESSION["category"]="stuff";

然后你可以保留它直到你不再需要它,或者他们终止他们的会话

答案 1 :(得分:1)

如果您只需要在页面之间存储状态,如标题所示,那么您可以将此信息存储在$_SESSION超全局数组中。在将任何输出发送到浏览器之前,通过将session_start()作为任何新页面的第一行运行来启动新会话。当您在下一页以相同方式启动会话时,您在$_SESSION内存储的任何内容都将可用。

如果您只对构建查询字符串感兴趣(即网址的?field=value&field2=value2部分),正如您的问题内容所示,那么您可能需要查看{{3}功能。

关于你的实际目标是什么,你的问题对我来说似乎有些模棱两可,所以我给了你两种方法。请记住,您应该使用$_SESSION表示州,http_build_query()表示创建动态网址以指向特定内容。还要记住,如果数据需要是安全的,那么您不应该将其放在URL或用户可以修改它的任何其他地方,或者其他人可以读取它的地方(例如在浏览器地址栏中)。这类信息需要在$_SESSION

答案 2 :(得分:0)

  

我想在浏览时将变量存储在URL中。

您无法在网址中“存储”任何内容 如果要使用查询字符串将某些数据从一个页面传递到另一个页面,则必须将此数据添加到查询字符串中。

“购物地图”应该为每个链接添加类别 这就是每个Web应用程序的工作方式。

会话不是要走的路,因为网站上的每个网页都应该有地址,而您的类别是此地址的重要组成部分。如果您将其存储在会话中,则不能添加任何书签,也不会将任何链接发送给朋友,也不会有搜索引擎将您的商品编入索引。