te falta el action!!
 
<form  method="post" name="form" action="?????"> 
aunque veo que con el ajax lo haces... emm.. a ver.. puede que mi observacion Nº2 sea el problema.. de todas maneras pruebala inicialmente, y luego verifica la Nº1   
1)  Cita:  $sql_in= mysql_query("SELECT msg,msg_id FROM messages order by msg_id desc");//aca no incluis a dato para que te traiga como resultado
 
$dato=$r['dato']; // aca llamas a dato desde tu resultado, pero no existe en tu query
 
en todo caso deberia ser:
$sql_in= mysql_query("SELECT msg_id,msg,dato FROM messages order by msg_id desc");
    2)
 url: "demo.php",
	   data: dataString,
	  cache: false,
	  success: function(html){
	  $("ol#update").prepend(html);
	  $("ol#update li:first").slideDown("slow");
	   //document.getElementById('dato').value='';... 
esta parte del codigo esta comentada, no sera el problema?, probar quitandole las dos // iniciales
	   document.getElementById('content').value='';
	  $("#flash").hide();
	  }
	 }); 
despues la verdad ya no se, es decir, no puedo ver otro error