php:通过页面传递大量数据

时间:2009-11-11 16:35:12

标签: php javascript jquery ajax session

我正在尝试解决我需要将大数据数据传递到另一个页面的问题,这是我的方案:

用户在表单中输入他/她的gmail登录信息,然后我将此信息发送到ajax页面,我在其中验证并获取所有联系人,如果登录无效,他们可以再试一次但是如果它经过身份验证我需要将它们发送到下一页,我将解析所有电子邮件并检查它们是否与网站上的任何用户匹配。

方法1(不起作用):

将所有数据存储在会话中,这仅在数组较小时才有效,因为会话有大小限制。

方法2(不起作用):

使用javascript添加隐藏的输入,然后提交表单(也使用javascript)。 事实证明,除非用户触发事件,否则您无法提交表单并返回true(更改页面)。

那么我该怎么做呢,我应该跳过ajax身份验证并将它们发送回上一页,如果它不起作用或者我的问题有解决方法吗?

4 个答案:

答案 0 :(得分:3)

如果您无法使用MySQL,为什么不将数据存储在数据库,MySQL或SQLite中。在那里,您将存储链接到用户会话ID的阵列的序列化版本。

我正在考虑的MySQL表:

id | session_id |数据

http://php.net/manual/en/function.serialize.php有关如何序列化数组的信息。

答案 1 :(得分:0)

如果您能够在下一页上再次获取数据,则可以执行此操作,而不是在页面之间传递数据。

答案 2 :(得分:0)

由于您使用的是jQuery,因此无需用户单击即可直接或作为表单上的隐藏元素提交数据。假设第二次提交是通过AJAX你可以:

 $("#mydiv").load("secondpage.php", {email1: 'blah'}, function(){
   alert("Submitted everything nicely");
 });

答案 3 :(得分:0)

取决于您的网络服务器,但会话变量通常没有大小限制。 Apache + PHP你可以处理非常大的大小,而你应该关心 http://ca.php.net/manual/en/ini.core.php#ini.memory-limit。另外,PHP.ini带有你可以调整的session.size变量。我不确定它对你不起作用;你用了$ _SESSION,对吧?

最后,为了建立一个更好的持久但速度更快(比数据库更快)的易变性存储,我建议使用Danga's memcached.它非常稳定,广泛使用,并且包含了各种语言风格的包装。