2011-11-14 50 views
0

我有一个php应用程序不断从服务器获取x和y位置。根据x和y的值,它在屏幕上放置一个图像。该页面每10秒不断刷新一次。我想将先前获得的x和y值(刷新前)保存到x1和y1中,然后将当前获得的值存储在x和y中(刷新后),以便可以计算x1-x和y1-y。PHP商店值

<?php 
session_start(); 
if(isset($_SESSION['x1'])) 
    $_SESSION['x1'] = $x; 
else 
    $_SESSION['x1'] = 0; 

$x = //Some method of fetching the x position from server 
?> 

上述代码的问题是,在每次刷新期间,x1的值被当前x替换,即x1变成等于x。我如何让x1保留其价值。

+0

你能更好地解释你想完成什么吗?你从什么服务器获得X/Y位置?你通过AJAX调用这个脚本?你想要输出什么? – Brad

回答

4

最明显的解决方案:将值放入请求的的会话中。

session_start(); 
if(!isset($_SESSION['x1'])) 
    $_SESSION['x1'] = 0; 

// your code here 

$_SESSION['x1'] = $x; 
exit; // Not really, just to clarify, that the script should end here 
     // or at least its not that important, what comes next 
+1

要建立在KingCrunch的答案你可能会想注册一个关机功能为 功能save_session(){// 代码 } register_shutdown_function(save_session); –

+0

啊......那么明显......我猜我需要休息一下......感谢你的帮助和支持 – user1035927

0

x1应保留它在会话中的每个呼叫的值。你用我在这里看到的$ x立即覆盖它。

如果您在比较$ x到$ _SESSION之间发布$ x变量,并在覆盖它之前查看这两个值。在写入之前输出$ _SESSION ['x1']。在覆盖之前,您应该看到之前的值。

0

您需要发布更多的代码。基于你有什么,我不明白这是如何实现你想要的。假设$ x的值为4.您运行查询,$ x现在为7.然后将$ _SESSION ['$ x1']的值设置为7并保存。但刷新后,您将拉取$ x1的值7,并立即重置为$ x。为什么?它已经有了你想要的值,7,这是$ x的前值。然后,您将设置$ x(现在为7)为您从服务器拉出的任何数字,并且以前的值永远丢失。