$data = date("d n y h:i");

ti rende:

31 1 05 01:19

Ora questa e' una stringa e deve essere messa in un campo CHAR/VARCHAR. Il formato della data in MySQL e' yyyy-mm-dd H:i:s

Se vuoi mettere una data ora e gestirla come tale, dovresti usare un campo DATETIME ed inserirla con:
codice:
"INSERT INTO messaggi 
(nickname, date, msg, mail, msn, icq) 
VALUES ('$nickname', NOW(), '$msg', '$mail', '$messenger', '$icq')";
NOW() senza virgolette...