POST-файл может обрабатывать несколько запросов? - PullRequest
0 голосов
/ 21 января 2010

У меня есть файл user_submit.php, который обрабатывает все запросы POST. то, что я делаю, я посылаю небольшие целочисленные значения с помощью метода jquery POST. эти целочисленные значения отправляются по одному примерно 10 раз.

я хочу добавить все эти значения и получить окончательный результат после последнего шага.

так что я делаю:

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

но он не суммирует все значения. как только я отправлю второе значение, файл забудет первое значение. я имею в виду, что первое значение не сохраняется в $ total для использования во втором запросе.

как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 21 января 2010

Проблема существует из-за того, что вы неправильно понимаете, как работает PHP (и другие веб-языки).

После выполнения каждого PHP-запроса приложение закрывается, все переменные уничтожаются и т. Д. Поэтому каждый раз, когда заканчивается ваш POST-запрос, ваша $total переменная сбрасывается.

Чтобы обойти это ограничение, PHP имеет механизм обработки сеансов, который позволяет вам хранить переменные в течение сеанса, сохраняя их между запросами, но позволяя устанавливать их уникально для каждого пользователя.

Я предлагаю вам изменить так, чтобы он использовал встроенный в PHP механизм обработки сеансов :

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

Другие примеры использования переменных сеанса можно найти в руководстве по PHP .

0 голосов
/ 21 января 2010

Вам нужно будет хранить $total в переменной $_SESSION на стороне php, в противном случае она будет воссоздана при каждом запросе.

В качестве альтернативы вы можете передать как счет, так и текущий итог через ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...