Bueno pues las respuestas a tus preguntas están en este código y las puse como comentario:
Código PHP:
<?php
$ruta = 'comentarios.txt';
if ( isset ( $_POST['submit'] ) )
{
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];
$nuevosdatos = $nombre."^".$email."^".$comentario."\n"; // utiliza algún carácter de separación no tan común yo utilice ^ pero puede ser el que se te antoje
@ $fp = fopen($ruta, 'a'); // abrimos el archivo para adjuntar los nuevos datos
@ fwrite ($fp, $nuevosdatos); // escribimos los datos
@ fclose ($fp); // cerramos el archivo
}
@ $leearchivo = file ( $ruta ); // leemos el archivo
if ( $leearchivo )
{
$cuantoscomentarios = count ( $leearchivo );
$leearchivo = array_reverse ( $leearchivo ); // esto servirá para mostrar los últimos comentarios
$meses = array ( '0', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
if ( $cuantoscomentarios <= 3 )
{
for ( $e = 0; $e < $cuantoscomentarios; $e++ )
{
$partes = explode ( "^", $leearchivo[$e] );
echo "<table border=0 bgcolor=\"#DEDEDE\"><tr><td>";
echo "<textarea name=\"comentarios\" style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto\" readonly>"; // esto es lo que harías para poner el mensaje con un ancho fijo
$groserias = array ( 'pinche', 'cabron' ); // disculpa las groserias pero, recuerda que las pueden poner, aquí pon todas las que no quieras que aparezcan
// esta función se encarga de remplazar las malas palabras que me parece que es lo que pediste sobre comentarios inconvenientes
// una recomendación: pon todos tus comentarios en mayúsculas o en minúsculas para que esta función de resultados ya que no es lo mismo Cabron, cabron etc, esto lo haces
// con las funciones strtoupper() o strtolower() respectivamente
echo str_replace ( $groserias, '?@$#&', $partes[2] )."</textarea><br/>";
echo "Lo dijo ".$partes[0]." ".date('j')." ".$meses[date('n')]." ".date('Y')." | ".date('g:i a')."</tr></td></table>"; // aquí le agrege lo que pediste de la fecha
echo "<p>";
}
}
else
{
for ( $i = 0; $i <= 2; $i++ ) // aquí el <= 2 representa que sólo queremos mostrar 3 mensajes
{
$partes2 = explode ( "^", $leearchivo[$i] );
echo "<table border=0 bgcolor=\"#DEDEDE\"><tr><td>";
echo "<textarea name=\"comentarios\" style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto\" readonly>";
$groserias = array ( 'pinche', 'cabron' );
echo str_replace ( $groserias, '?@$#&', $partes2[2] )."</textarea><br/>";
echo "Lo dijo ".$partes2[0]." ".date('j')." ".$meses[date('n')]." ".date('Y')." | ".date('g:i a')."</tr></td></table>";
echo "<p>";
}
}
}
?>
<form name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Nombre:<br/><input type="text" name="nombre" size="32"><br/>
Correo:<br/><input type="text" name="email" size="32"><br/>
Comentario:<br/>
<textarea name="comentario" cols="50" rows="12"></textarea><br/>
<input type="submit" name="submit" value="Enviar">
</form>
Como podrás ver utilice un archivo de texto para guardar los mensajes aunque lo que te aconsejo si es que piensas recibir muchos mensajes es que utilices una base de datos pero creo que con este ejemplo bastará para aclarar tus dudas. Deberías estudiar más funciones de tratamiento de cadenas ya que te serán útiles, echale un vistazo al manual en línea:
http://www.php.net/manual/es/ref.strings.php
Hojala te sea de utilidad. Suerte