i campi che gestiscono le date in mysql si aspettano il formato ansi yyyy-mm-dd hh:mm:ss

devi inserire la data con la funzione NOW() di mysql. Se usi un campo datetime ci sara' pure l'orario, con campo frm. DATE la sola data.

inserisci con:

INSERT INTO post (autore, post, data)
VALUES ('$by', '$text', NOW() )";

estrai con:

"SELECT *, date_format(data, '%d/%m/Y') as data
FROM post

il risultato di 0000-00-00 significa che hai inserito una data non valida