2011-11-14 114 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)爲您從服務器拉出的任何數字,並且以前的值永遠丟失。