Извиняюсь, что пишу не в тему - но что это вообще за шаманство такое?
$whatPage = trim(strip_tags(htmlspecialchars(mysql_real_escape_string($_POST['whatpage']))));
$idUser = trim(strip_tags(htmlspecialchars(mysql_real_escape_string($_POST['idu']))));
Переменная $whatPage никогда не выводится обратно - и ее экранировать не надо. Переменная $idUser выводится в контексте javascript, причем без кавычек - наверное, это число. Ну так и приведите его тип к числовому, который экранировать уже не надо. (Да и с $whatPage можно поступить так же для спокойствия):
$whatPage = (int)$_POST['whatpage'];
$idUser = (int)$_POST['idu'];
PS по теме вопроса - какая кодировка у файла скрипта, какую кодировку ожидает PHP - и какой Content-Type отдает сервер? Совпадают ли эти три значения?
И еще глупый вопрос: чему равна переменная $whatPage? Не может ли быть, что ошибка в другом месте, а скрипт ничего не выводит из-за неверного значения этой переменной (скажем, "3" или "1a")?