2011-03-09 58 views
1

通过页面之间的大字符串值羊城通羊城通,我已经在服务器端使用PHP,jQuery的AJAX在客户端通过动态页面之间的大字符串值

我做了旅游门户,列车列表我必须显示预订,我得到的详细信息作为JSON从PHP和格式的JSON数据到HTML。每一件事情都很好

问题是我需要将选定的列车信息和所有列车信息传递到下一页,如果用户希望更改选定的列车,我需要返回到上一页并显示列车列表再次不查询服务器

如何以安全的方式将值传递到下一页?或者我如何在页面上保留大的值?

回答

2

有几种方法可以做到这一点,但都不是最优的。

  1. 您可以通过“伪装”不同的页面保存在内存中的一切,使用哈希爆炸网址
  2. ,您可以通过正常的GET参数发送给他们,但你可能已经知道,因为你问这个问题,这有局限性
  3. 你可以使用HTML5本地存储,但因为它不是由任何东西,但最新的浏览器支持,这不是很好的一个生产基地,需要针对广大观众
  4. 您可以使用Cookie,但在这里你会遇到与获取网址参数相同的限制
  5. 您可以使用闪存存储,但是这需要加载的每个页面上的Flash应用程序,以及一些用户可能没有闪光灯或可能已禁用Flash本地存储

在我心中最好的解决办法是#2:使用get url参数并通过url保持状态。 请注意各种浏览器中网址长度的限制,并“压缩”您的数据,以便尽量减少它们的占用空间。

这样做的方法通常是使用尽可能少的url参数,并使用逗号分隔位标志。

因此,举例来说,你可以从

?cars=ford,bmw,vw,mazda更改URL参数,以?c=23

,然后对喜欢的预定义变量测试c按位:

var BMW = 1, VW = 2, FORD = 4, KIA = 8, MAZDA = 16; 

if(c & BMW) { bmw is set} 
if(c & VW) { vw is set} 
if(c & FORD) { ford is set} 
if(c & KIA) { kia is set} 
if(c & MAZDA) { mazda is set} 

这个例子并不是要漂亮,只是为了展示这个概念。

如果您通过这种方式最大限度地减少了网址占用,您可以将大量数据存储在网址中,而且您不太可能会遇到网址大小限制。

0

你可以在页面之间使用POST吗?

+0

如果我使用POST回到以前的页面时,它会问重新发送数据,我需要防止这种情况 – 2011-03-09 12:08:24

0

您可能会考虑将其存储在用户会话中。这使您的数据在服务器端保持“安全”,否则您将失去对用户数据的“控制”。

1

正如Robert所说,您可能想要使用PHP Session。 否则,您可以使用JSON并通过GET传递它,但您可能会在GET参数的长度方面遇到一些问题。 请注意,如果您不打算查询服务器,则所有数据都会打开进行操作。

-1

BSET安全的方法是会话创建数据库中的数据或数据添加到饼干(第一种方式是更好的),只有通过ID以获得到另一个页面

+0

如果您阅读这个问题,它说明用户需要能够返回到上一页(在浏览器中回想按钮),并且仍然可以访问数据*而不用查询服务器*数据库如何提供帮助? – 2011-03-09 13:12:31

+0

如果您阅读帖子,还有Cookie基础方法;) – Efazati 2011-03-09 13:15:48

相关问题