Bueno pues aquí esta la respuesta a la pregunta que hicieron con respecto a como mostrar los comentarios antiguos, el código se afino un poco pero le faltan más detalles que ya irán por cuenta de ustedes como son: validaciones de las variables, es decir que el contenido este o no vacio, que tenga el email valido, etc.) modifiquenlo de acuerdo a sus necesidades y estudienlo para que cuando necesiten realizar cambios sepan donde hay que hacerlos, trate de ser lo más explicito posible para que se me entendiera, por favor lean los comentarios para que entiendan mejor lo que hace el código.
El blog consta de dos archivos: ejemplo.php (pueden guardarlo como se les antoje) que se encarga de guardar los comentarios y mostrar unos cuantos, esto según el número que ustedes pongan como limite y mascomentarios.php (a este también le pueden cambiar el nombre pero también lo deberán hacer el las líneas 59 y 63 de ejemplo.php, también en las 45 y 49 de mascomentarios.php) que se encarga de mostrar los comentarios más antiguos.
ejemplo.php
Código PHP:
<?php
$ruta = "comentarios.txt"; // ruta completa hacia el archivo que vamos a crear
if ( isset ( $_POST['submit'] ) ) // si presionaron el boton de Enviar
{
// Creamos nombres de variables cortos
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];
// convertimos a mayúsculas el comentario para que la funcion que se encarga de remplazar groserias surta efecto
$comentario = strtr ( strtoupper( $comentario ), 'àáâãäåæçèéêëìíîïðñòóôõöøùüú', 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ' );
// anexamos estos valores a una sóla variable que será la que guardaremos en nuestro archivo
// y esta tendra como separadores de campos el símbolo "^"
$n_datos = $nombre."^".$email."^".$comentario."^".date('j')." ".$meses[date('n')]." ".date('Y')." | ".date('g:i a')."\n";
@ $fp = fopen ( $ruta, 'a' ); // abrimos el archivo para adjuntar los nuevos datos
@ fwrite ( $fp, $n_datos ); // escribimos los datos indicandole cuales son
@ fclose ( $fp ); // cerramos el archivo
}
@ $lee_archivo = file ( $ruta ); // abrimos el archivo y lo leemos
@ $lee_archivo = array_reverse ( $lee_archivo ); // invertimos el orden del array para leer los comentarios desde el último que fue guardado
if ( $lee_archivo ) // si existe el archivo
{
$numero_de_comentarios = count ( $lee_archivo ); // no. de comentarios que han sido guardados
// creamos un array con los nombres de los meses para guardarlos en castellano
$meses = array ( '0', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
$cuantos_comentarios = 3; // limite de comentarios que queremos mostrar en pantalla
$groserias = array ( 'PINCHE', 'CABRON' ); // disculpen las groserias pero, recuerden que las pueden poner, aquí pongan todas las que no quieran que aparezcan
if ( $numero_de_comentarios < $cuantos_comentarios )
{
$amostrar = $numero_de_comentarios;
}
else
{
$amostrar = $cuantos_comentarios;
}
for ( $e = 0; $e < $amostrar; $e++ )
{
// separamos los campos nombre, email, comentario y fecha_hora obteniendo los campos de esta manera
// $partes[0]=nombre, $partes[1]=email, $partes[2]=comentario, $partes[3]=fecha_hora si necesitan que el email se muestre solo agregen $partes[1]
$partes = explode ( "^", $lee_archivo[$e] );
echo "<table border=0 bgcolor=\"#DEDEDE\"><tr><td colspan=\"2\">";
echo "<textarea style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto\" readonly>";
echo str_replace ( $groserias, '?@$#&', $partes[2] )."</textarea></td></tr>"; // remplazamos las malas palabras que fueron escritas en el campo comentario por signos
echo "<tr><td>Lo dijo ".$partes[0]."</td><td align=\"right\">".$partes[3]."</td></tr></table><p>";
}
$restan = $numero_de_comentarios - $cuantos_comentarios; // cuantos comentarios nos estamos mostrando en pantalla
if ( $restan > 0 ) // hay comentarios antiguos
{
if ( $restan < $cuantos_comentarios ) // si los comentarios que hacen falta son menos de los que se muestran por hoja mostramos el nO. que falta por mostrar
{
echo "<a href=\"mascomentarios.php?muestra=$cuantos_comentarios&ruta=$ruta&desde=$cuantos_comentarios\">Mostrar el(los) siguiente(s) $restan comentario(s)</a>";
}
else // mostramos otros comentarios el no. depende del limite que pusimos en la vaiable $cuantos_comentarios
{
echo "<a href=\"mascomentarios.php?muestra=$cuantos_comentarios&ruta=$ruta&desde=$cuantos_comentarios\">Mostrar los siguientes $cuantos_comentarios comentarios</a>";
}
}
}
else // si no existe el archivo
{
echo "No hay ningún mensaje guardado.<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>
mascomentarios.php
Código PHP:
<?php
if ( isset ( $_GET['muestra'] ) && isset ( $_GET['ruta'] ) && isset ( $_GET['desde'] ) )
{
$cuantos_comentarios = $_GET['muestra']; // es el limite de comentarios que colocaron en este caso 3
$desde = $_GET['desde']; // es el némuro desde el cual vamos a mostrar los mensajes
$ruta = $_GET['ruta'];
@ $lee_archivo = file ( $ruta ); // abrimos el archivo y lo leemos
@ $lee_archivo = array_reverse ( $lee_archivo ); // invertimos el orden del array para leer los comentarios desde el último que fue guardado
if ( $lee_archivo )
{
$numero_de_comentarios = count ( $lee_archivo ); // número de cuantos comentarios han sido guardados
// creamos un array con los nombres de los meses para guardarlos en castellano
$meses = array ( '0', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
$restan = $numero_de_comentarios - $desde; // cuantos comentarios nos estamos mostrando en pantalla
if ( $restan <= $cuantos_comentarios ) // si el número de comentarios que faltan es menor al limite establecido
{
$amostrar = $restan + $desde;
}
else
{
$amostrar = $cuantos_comentarios + $desde;
}
for ( $e = $desde; $e < $amostrar; $e++ )
{
// separamos los campos nombre, email, comentario y fecha_hora obteniendo los campos de esta manera
// $partes[0]=nombre, $partes[1]=email, $partes[2]=comentario, $partes[3]=fecha_hora
$partes = explode ( "^", $lee_archivo[$e] );
echo "<table border=0 bgcolor=\"#DEDEDE\"><tr><td colspan=\"2\">";
echo "<textarea style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto\" readonly>";
echo str_replace ( $groserías, '?@$#&', $partes[2] )."</textarea></td></tr>"; // remplazamos las malas palabras que fueron escritas en el campo comentario por signos
echo "<tr><td>Lo dijo ".$partes[0]."</td><td align=\"right\">".$partes[3]."</td></tr></table><p>";
$quedo_en = $e + 1; // variable que almacenara en donde se quedo el contador
}
$restan2 = $numero_de_comentarios - $quedo_en; // nos dirá cuantos comentarios faltan por mostrar
if ( $restan2 > 0 ) // todavia hay comentarios antiguos
{
if ( $restan2 < $cuantos_comentarios ) // si los comentarios que hacen falta son menos de los que se muestran por hoja mostramos el nO. que falta por mostrar
{
echo "<a href=\"mascomentarios.php?muestra=$cuantos_comentarios&ruta=$ruta&desde=$quedo_en\">Mostrar el(los) siguiente(s) $restan2 comentario(s)</a>";
}
else // mostramos otros comentarios el no. depende del limite que pusimos en la vaiable $cuantos_comentarios
{
echo "<a href=\"mascomentarios.php?muestra=$cuantos_comentarios&ruta=$ruta&desde=$quedo_en\">Mostrar los siguientes $cuantos_comentarios comentarios</a>";
}
}
}
else
{
echo "No hay ningún mensaje guardado.<p>";
}
}
else
{
echo "No se han enviado las variables necesarias para ejecutar el archivo.";
}
?>
Bueno pues espero les sirva y les de una idea para futuras modificaciones. Suerte