Здравствуйте.
Имеется страница mypaints в личном кабинете юзера. На этой странице висит javascript, который аяксом каждые 1,5 сек дёргает файл mypaints_process. На страничке mypaints_process работает функция count_paint(), которая в базе данных MySQL подсчитывает число добавленных юзером в избранное рисунков, при этом старое значение счётчика записывается в переменную сессии и если счётчики различны, обновляем страницу.
Проблема какая-то странная. Я как юзер добавляю пару изображений, вручную проверяю страницу mypaints_process, а оба счётчика равны (равны старшему, то есть новому значению), хотя ведь должны отличаться. При этом в JSON нужный флаг записан не был, а отладочный алерт на яваскрипте также не выводился.
Вроде полторы строки кода, но я уже всю голову сломал, второй день мучаюсь.
Код:
<?PHP
function count_paint(){
//здесь подсчитываем количество добавленных юзером рисунков и записываем результат в переменную $accum. Далее будем сравнивать эти две переменные - $accum и $_SESSION['accum'], чтобы отслеживать новые добавленные юзером рисунки
//Данная функция была проверена, работает она хорошо без ошибок, в том числе и в других скриптах, так что проблема не в ней
}
count_paint();//вызываем её, подсчитывая таким образом значение $accum
if (!isset($_SESSION['accum'])) $_SESSION['accum']=0;//если это новая сессия и счётчик-сессия не инициализирован, то инициализируем его нулём
if ($_SESSION['accum'] < $accum){//если изменилось (увеличилось) количество выбранных в этой сессии рисунков, которые выбрал пользователь, то
$flag_paints_refresh='ref';//записываем для json флаг, сообщающий о необходимости перезагрузить страницу.
echo ("<script type='text/javascript'>window.alert('OK')</script>");//ну или хотя бы просто сообщить что всё работает. НО ЭТОТ БЛОК IF НИКОГДА ВООБЩЕ НЕ ВЫПОЛНЯЕТСЯ, ПОТОМУ ЧТО $_SESSION['accum'] И $accum ВСЕГДА РАВНЫ. КОГДА Я ДОБАВЛЯЮ КАК ЮЗЕР НОВЫЙ РИСУНОК В КОЛЛЕКЦИЮ, $accum ДОЛЖЕН СТАТЬ БОЛЬШЕ ЧЕМ $_SESSION['accum'], НО ОНИ ВСЕГДА РАВНЫ. ПОЧЕМУ?
$_SESSION['accum']=$accum;//даже если закомментировать эту строку для отладки, всё равно НЕ РАБОТАЕТ
}
?>