В скрипте не видно, где объявляются переменные $title, $short и $full - и у меня появилось ощущение, что они появляются в следствии включенности директивы register_globals? Если это так - спешите это исправить. Кроме того, пустой массив (строчка 2 вашего кода) нужно перенести на строчку выше, чтобы переменная была задана, даже если это не запрос post, т.к. проверка-то идет без этого условия. Так же проверку на метод post лучше делать так:
if (strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {
// это POST
}
Ну и проверку на заполненность массива, имхо, быстрее и логичнее (если что notice валится не будут) лучше делать не через count, а через empty.