POST文件可以处理多个请求吗?

时间:2010-01-21 08:00:31

标签: php

我有一个文件user_submit.php来处理所有的POST请求。 我正在做的是我通过jquery POST方法发送小整数值。这些整数值一次发送一次大约10次。

我想要做的是我想要添加所有这些值并在最后一步之后提供最终结果。

所以我在做:

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

但它无法将所有值加起来。一旦我发送第二个值,该文件就会忘记第一个值。我的意思是第一个值不会存储在$ total中以便在第二个请求中使用。

我该怎么做?

2 个答案:

答案 0 :(得分: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中找到更多会话变量用法示例。

答案 1 :(得分:0)

您需要将$total存储在php端的$_SESSION变量中,否则会在每次请求时重新创建。

或者你可以通过ajax传递得分和当前总数。