2010-01-21 52 views
-1

我有一個處理所有POST請求的文件user_submit.php。 我在做什麼是我通過jquery POST方法發送小整數值。這些整數值一次發送10次左右。可以POST文件處理多個請求嗎?

我想要做的是我想加起來所有這些值,並提供最後的步驟後的最終結果。

,所以我這樣做:

$score = intval($_POST['score']); 
$total = $total+$score; 
echo $total; 

,但它不能概括所有的值了。只要我發送第二個值,文件就會忘記第一個值。我的意思是第一個值不會存儲在$ total中以用於第二個請求。

我該如何去做?

+0

我想你需要首先考慮這一點。如何鏈接來自同一用戶的不同POST請求? $ _SESSIONS可能是你正在尋找的。但我不確定。 – Tommy 2010-01-21 08:05:38

+0

重複您以前的問題:http://stackoverflow.com/questions/2104257/php-post-summation? – OcuS 2010-01-21 08:06:02

+0

您的腳本是否只添加了值?如果是這樣,你可以直接在Javascript中做到這一點,不需要服務器端處理。或者先將它們與JS聯繫起來,然後將結果發送給服務器(如果需要的話)。 – 2010-01-21 09:33:47

回答

2

的問題存在,因爲你的整個方式PHP(以及其他基於Web的語言工作)一種錯誤的認識。

一旦每個PHP請求完成後,應用程序被關閉,所有變量被殺害等,因此每次你的POST請求結束的時候,你的$total變量被重置。

要解決這個限制,PHP有一個會話處理機制,它允許你存儲變量會話範圍,從而保持它們的請求之間,但讓他們來爲每個用戶唯一設定。

我建議你修改,以便它使用內置的PHP session handling mechanism

<?php 
$score = intval($_POST['score']); 
$_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score; 
echo $_SESSION['total]; 

您可以找到PHP manual會話變量使用的更多的例子。

0

您將需要存儲$total在PHP端,否則它就會在每個請求重新創建一個$_SESSION變量。

另外,您可以通過AJAX同時通過得分和當前總。

+0

如何做$ _SESSION? – amit 2010-01-21 08:04:10

+0

'$ total = isset($ _ SESSION [「total」])? $ _SESSION [「total」]:0;' - 另見http://www.w3schools.com/PHP/php_sessions.asp – 2010-01-21 08:10:13