Cita: Quiero hacer que el usuario no pueda enviar un mensaje vacío. Y matizando la palabra "vacío", ya he puesto el "empty($mensaje)", pero se puede seguir simulando un mensaje en blanco poniendo un sólo espacio.
Limpia tu cadena de espacios por delante o al final y saltos del línea con:
trim()
www.php.net/trim
if (empyt(trim($titulo)){
echo "titulo vacio";
}
También puedes usar expresiones regularas para no permitir ciertos caracteres ...
Y acuerdate a la hora de presentar tus mensajes de aplicar:
htmlentities()
http://www.php.net/htmlentities
Por qué sino más de uno te escribirá HTML ahí y tu página lo interpretará. Por lo menos con htmlentities() no se interpretará (por qué se sustituyen caracteres como < en su "entidad" HTML).
Y también stripslashes() (si corresponde) para que no tengas problemas con acentos y caracteres que se "escapan" (si usas magic_quote_gpc a ON como suele ser lo común en tu configuración de PHP).
Un saludo,