Deja, il faut l'optimiser un chouilla :
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
if( $pseudo != NULL AND $message != NULL)
{
ca fait répétition ces deux boucles.
Il suffit de faire
if (!empty ($_POST['pseudo']) AND !empty($_POST['message']))
{
Ensuite, prends le réflexe de mettre des OR die (ton message d'erreur) apres les requetes SQL, je trouve ca plus pratique pour debuger.
Enleves le premier mysql_close() (en dessous du INSERT INTO), car la BDD doit etre refermée dans tous les cas, vu que meme si tu n'insères pas tu affiches, par conséquent un seul mysql_close() est utile.
Dans le même genre, quand tu postes un message, tu ouvres deux fois la BDD(une fois pour écrire et une fois pour lire), essayes de l'ouvrir une seule fois au début.
Enfin, dans ton while d'affichage, essayes de ne pas ouvrir/fermer les balises php tout le temps, fais un truc du genre :
echo '<p><strong>'.$donnee['pseudo'].'le reste du message</p></strong>' ;
Enjoy
The lsd
PS : je n'ai regardé que le deuxième script que tu as mis.