会话变量没有及时加载

问题描述:

我有一个2页的PHP代码。会话变量没有及时加载

第1页:允许将变量输入加载到几个数组中,然后加载到使用这些数组创建的几个SESSION变量中。

第2页:创建并显示一个利用所有SESSION变量并使用“imagecreate”的png。

有时,随机第2页并不总是在创建pgn之前加载所有SESSION变量,导致格式错误的图像。

刷新页面2然后创建正确的图像,确认所有的会话变量终于被传递到第2页

能否PNG创建被延迟,直到所有的会话变量加载后或有另一种解决方案?

+1

什么是pgn? ...你的意思是PNG吗?此外,查看两个脚本的代码以查看会话处理将非常有帮助。 –

+0

我认为Ozzie的意思是PNG图像文件不是“pgn”。而所有这些下来的选民,给奥兹休息一下,这是他/她的第一篇文章。至少要评论你为什么投票否决,以便他/她可以改进。 –

+0

PHP会话确保没有并发性,因此如果在页面2之前加载页面1,数据将在那里。但是,如果您同时打电话给两个页面,则无法保证首先加载哪个页面。在我看来,问题不在于会话,而只是你不确保事物按顺序加载。 – Havenard

你的问题指出

可变投入多个阵列,然后将使用这些阵列创建多个Session变量,则不应使用会话变量这样的数据。

随着流量的增长,如果您为会话存储中的每个用户存储大量数据,则将耗尽磁盘空间。

而不是SESSION可变使用您的用户的浏览器为您的需要localStorage,他们会更快,更小的磁盘空间负载。

+0

我同意SESSION变量不应该被使用,但是我们好奇他们为什么没有被第2页正确读取?如上所述,来自Ozzie的一些代码会有所帮助。 –

+1

当你的页面在你的服务器完成处理之前得到渲染时,你放置的变量就越多,服务器处理它的时间就越多,你的响应就会越迟,而有些项目是未处理的 –

感谢您的回复。 问题不是加载SESSION变量,而是加载缓存图像而不是新创建的图像。 在图像名称中包含一个时间戳,这解决了问题。 即$ plan [time()] = imagecreatetruecolor(1000,1000);