Foros del Web » Programando para Internet » PHP »

Contador de Comentarios

Estas en el tema de Contador de Comentarios en el foro de PHP en Foros del Web. Hola chicos soy super nueva en este lio del php entiendo los comandos basicos sucede que estoy haciendo mi blogcito y quiero que los visitantes ...

  #1 (permalink)  
Antiguo 09/10/2006, 16:01
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
crear insertar comentario con actualizacion inmediata en web

Hola chicos
soy super nueva en este lio del php
entiendo los comandos basicos
sucede que estoy haciendo mi blogcito
y quiero que los visitantes me dejen sus comentarios
como puedo hacer para que una vez que lo hayan
hecho y hagan click en enviar
aparezcan inmediatamente en la web???

Hice un pequeño formulario en php
entiendo que hay que enviar los contenidos a un procesador php
pero como hago para que aparezca el comentario en la web
inmediatamente?
les voy a agradecer muchisimo su ayuda
y sorry por la novatada
Nausicaa
  #2 (permalink)  
Antiguo 09/10/2006, 16:08
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
No me quedo muy claro eso de que quieres que te aparezca inmediatemente (lo que quieres es que aparezca sin necesidad de recargar la página?, porque si es eso te recomiendo que mejor públiques tu mensaje en el foro de AJAX)
, acaso te refieres a que aparezca que es lo que escribio tu invitado?, de ser así lo único que tienes que hacer es, en cuanto recibas la variable vía GET o POST solo hay que escribir:

echo _$POST['comentario']; // por decir algo y suponiendo que tu variable se llame comentario

Espero haberme dado a entender y que esto te sirva por lo menos para darte una idea. Suerte
  #3 (permalink)  
Antiguo 09/10/2006, 16:23
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
ejemplo

gracias erikito
pero no entendi
mira si entras por ejemplo a este blog la coctelera (http://www.lacoctelera.com/viajandoa...-kiss#c1025428
) ahi veras el modelo de lo que busco

la gente inserta un comentario y al actualizar (la actualizacion se hace mediante click en link o boton enviar) el contenido del comentario ya aparece en la pagina inmediatamente

como lo hago?
me lo explican? sorry, soy novata en php
Nausicaa
  #4 (permalink)  
Antiguo 09/10/2006, 20:26
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Lo que trate de explicarte es que cuando envias el formulario puedes hacer lo que se te antoje con las variables en tu caso mostrarlas en la página, yo utilice $_SERVER['PHP_SELF'] que es algo así como recargar en la misma página o actualizar pero tu puedes utilizar otro archivo, algo como comentarios.php. Pero bueno creo que un ejemplo dice más que mil palabras así que aquí te va:

Código PHP:
<?php
if ( isset ( $_POST['submit'] ) )
{
   
// aquí haces lo que quieras con las variables que enviaste del formulario
   
echo "<table border=0 bgcolor=\"#FFAFFF\"><tr><td>";
   echo 
$_POST['comentario']."<p>";
   echo 
"Lo dijo ".$_POST['nombre']."</td></tr></table><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 vez es muy sencillo. Echale un vistazo y modificalo, no se, poniendole estilos, colores, espacios, etc. para que se vea más bonito ok?. Espero ahora sí te quede un poco más claro. Suerte
  #5 (permalink)  
Antiguo 09/10/2006, 23:41
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
hola Erikito
gracias por tu inmensa ayuda !!!


Lo he entendido y me ha ayudado mucho
ahora permiteme hacerte unas preguntitas plissss:

Quisiera tambien que aparezcan la fecha y hora en que han sido hechos los comentarios
(simplemente inserto echo date?)

Erickito edite este comentario para no abusar, pero si quiero saber esto que es importante:
los comentarios hechos se borran y se reemplazan por los nuevos comentarios.
como hacer para que permanezcan los antiguos e ingresen los nuevos?
como hacer para borrar aquellos comentarios inconvenientes?

te lo agradecere muchisimo
Nausicaa

Última edición por nausicaa; 10/10/2006 a las 10:40
  #6 (permalink)  
Antiguo 10/10/2006, 11:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
la tabla

tambien tengo el problemilla de que no logro que la tabla que contiene los comentarios se ajuste el contenido
es decir:
si por ejemplo pongo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
el ancho de la tabla de comentarios que aparecen, se va a todo el ancho de la web.
como hago para que esa tabla se ajuste exacto al contenido?
gracias por su ayuda
Nausicaa
  #7 (permalink)  
Antiguo 10/10/2006, 14:57
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
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 <= )
   {
      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
  #8 (permalink)  
Antiguo 10/10/2006, 17:02
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
Erikito muchas gracias por tu dedicacion al responderme
he leido el codigo que me haz brindado
y lo voy entendiendo a medida que repito la lectura.

Lo he copiado y pegado en mi editor y luego lo he puesto en el servidor y cuando lleno el formulario y envio no aparecen los comentarios...solo actualiza el formulario html pero nada màs

Es posible que haya algun error en la escritura del codigo? (una coma o algo asi)
o es que yo debo llamar al archivo de los comentarios que se mostraran en pantalla de alguna forma en especial?


quedo agradecidisima de tu ayuda y nueva respuesta
Nausicaa
  #9 (permalink)  
Antiguo 10/10/2006, 21:58
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
¿Entendí bien? En tu servidor local (tu máquina), si funciona, pero ¿a la hora de subirlo a tu hosting no funciona? de ser así tal vez tenga algo que ver con los permisos, no se, se me ocurre que tal vez tengas que escribir unas líneas de conexión algo así como el mysql_connect o algo por el estilo, bueno en realidad no sé , pero creo que en cuanto a esta cuestion los que te prestan el servicio de hosting podrían orientarte, lamento no poder ayudarte en esta ocasión. Suerte
  #10 (permalink)  
Antiguo 11/10/2006, 09:55
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
lo mismo

a mi me pasa exactamente lo mismo, no escribe y tampoco se guarda nada en los archivos de texto...con algo muy similar a lo que ustedes hicieron ...
  #11 (permalink)  
Antiguo 11/10/2006, 11:17
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
fanny0 ¿tú ya probaste el último código que puse?
¿te funciono? o cual es tu problema.

  #12 (permalink)  
Antiguo 11/10/2006, 23:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
hola erikito
gracias por tu ayuda
veo que no soy la unica
entonces no es problema de mi host sino del planteamiento del codigo...kizas alguito por alli, una comita o algo verdad?
lo afinas?
si si si?
[IMG]www.members.aol.com/anthonydlee/Spiderwoman_Flying.jpg[/IMG]
  #13 (permalink)  
Antiguo 12/10/2006, 07:50
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Hola nausicaa en donde mencionas:

Cita:
Iniciado por nausicaa Ver Mensaje
veo que no soy la unica entonces no es problema de mi host sino del planteamiento del codigo...kizas alguito por alli, una comita o algo verdad?
me parece que fanny0 no puso a andar el código ya que si te fijas bien dice:

Cita:
Iniciado por fanny0 Ver Mensaje
no escribe y tampoco se guarda nada en los archivos de texto...con algo muy similar a lo que ustedes hicieron ...
Además de que amí sí me funciona, insisto con que el error debe ser con algo que he escuchado por ahí y que le dicen permisos. Yo desconsco de este tema ya que nunca he rentado un hosting y mucho menos he puesto a andar un servidor de páginas web al que se pueda acceder desde internet (que vea mi página con www ), todo lo he hecho localmente.

Tal vez alguien que lea esto podría hecharnos la mano y de paso aprendo algo yo también. O que nos diga si le funciono el código.

Suerte

Última edición por Erikfrancisco; 12/10/2006 a las 08:13
  #14 (permalink)  
Antiguo 12/10/2006, 09:33
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
Ya resulto...el otro no me funcionaba, el tuyo si funcionó...hay que darle el permiso CHMODE con algún progama ftp en propiedades o en modificar CHMODE al archivo de texto comentario.txt


saludos!!
  #15 (permalink)  
Antiguo 12/10/2006, 09:39
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
fanny0, Podrías poner el código de como le hiciste? o en su defecto lo pasos a seguir.

nausicaa, creo que lo que fanny0 hizo para que le funcionara fue algo con esta función:

http://www.php.net/chmode

leelo, prueba y luego me comentas que tal te fue, obviamente mencionando que líneas agregaste o quitaste ¿ok?. Suerte

Última edición por Erikfrancisco; 12/10/2006 a las 12:07
  #16 (permalink)  
Antiguo 12/10/2006, 17:47
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
es que no lleva codigo hay que meterse con el ftp y cambiarlo a 777


ah...y sabes que quiero que el logo quede arriba, no el comentario inmediatamente, si no un logo y un titulo...cuales códigos debería poner antes de hacer eso...??


saludos!!
  #17 (permalink)  
Antiguo 13/10/2006, 07:46
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Cita:
Iniciado por fanny0 Ver Mensaje
es que no lleva codigo hay que meterse con el ftp y cambiarlo a 777
Como lo cambias a 777, haces una conexión ftp y ¿le das click derecho al archivo? o exactamente ¿que se hace?


Cita:
Iniciado por fanny0 Ver Mensaje
ah...y sabes que quiero que el logo quede arriba, no el comentario inmediatamente, si no un logo y un titulo...cuales códigos debería poner antes de hacer eso...??
Lo único que tienes que hacer es agregar una línea + o - así:

<?php
echo "<h1><img src=\"ruta_a_tu_logo\"> El título que quieras</h1><p>";
$ruta = 'comentarios.txt';

Como vez, hay que agregarla en la primera línea para que sea lo primero que se muestre antes del formulario y los comentarios. Obviamente le pondrías colores, estilos o algo parecido para que se vea más bonito. Suerte
  #18 (permalink)  
Antiguo 13/10/2006, 08:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
detalles

hola Erick y Fanny
no pense que esto del php fuera asi de complicado, pero los voy entendiendo cada vez que los releo

Fanny, si pudieras detallar como cambias el permiso al archivo que mencionas paso por paso por favor

segun leo en la pagina que erick posteo, los permisos son para el cliente (nosotros) el visitante tendra algun problema?


les doy las gracias a los dos por la clase que nos brindan a los novatos
Nausicaa
  #19 (permalink)  
Antiguo 13/10/2006, 08:37
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
es que depende del programa ftp que utilices, pero tienes que buscar un boton que diga "propiedades" u otro que diga "modificar CHMODE", también en algunos host que aparecen los archivos que has subido tiene la opción de cambiarlo, tampoco te puedo especificar mejor eso, ya que depende de como sea el panel de control que tiene tu host, inclusive les puedes pedir a ellos que lo modifiquen o preguntarles donde lo puedes modificar, si tienen buena voluntad, no se van a demorar nada, es muy muy sencillo y yo ya había explicado como hacerlo en el primer post


"fanny0 Ya resulto...el otro no me funcionaba, el tuyo si funcionó...hay que darle el permiso CHMODE con algún progama ftp en propiedades o en modificar CHMODE al archivo de texto comentario.txt"


saludos y muchas gracias!
  #20 (permalink)  
Antiguo 13/10/2006, 08:39
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
por ejemplo en el ftp de dreamweaver no aparece la opción pero en el del coffeecup free ftp si, ahi tienes que ir a editar, propiedades y lo cambias...es muy muy sencillo
  #21 (permalink)  
Antiguo 13/10/2006, 08:50
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
necesito que guarde infinidad de comentarios, no sólo tres, por ejemplo que se muestren unos 20 comentarios y los demás que vayan quedando en otras paginas...

como hago eso??
  #22 (permalink)  
Antiguo 13/10/2006, 09:15
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues si te lees los comentarios que vienen en el código, en tu caso el de esta línea:

Cita:
Iniciado por Erikfrancisco Ver Mensaje
for ( $i = 0; $i <= 2; $i++ ) // aquí el <= 2 representa que sólo queremos mostrar 3 mensajes
Te darás cuenta que sólo hay que cambiar el <=2 por <=19, para que te muestre 20 mensajes. Y el archivo comentarios.txt lo puedes utilizar para mostrar los comentarios que quieras en otras páginas. Suerte
  #23 (permalink)  
Antiguo 13/10/2006, 09:15
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
Pregunta

ya logre que mostrara solo 20 comentarios, pero como hago para que se genere una pagina nueva luego de esos 20 comentarios??
  #24 (permalink)  
Antiguo 13/10/2006, 10:15
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
chmodeando

Fanny y Erick
ya encontrè la forma de cambiar el chmode (voyager ftp, es muy bueno y lo pueden descargar de www.download.com) pero voy a hacer una pregunta bien tonta lo sè pero debo hacerla


Debo subir usando el ftp un archivo de texto vacio llamado comentarios.txt???
lo que pasa es que yo daba por hecho de que mediante codigo se creaba el archivo comentarios.txt en forma automatica en el host y al buscarlo no lo encuentro

el cambio de las propiedades de chmode lo hago en donde? haciendo click en www? o solo en el archivo de comentarios?
porque si hago en el www. es para permitirlo en todo el host...es asi??

me merezco sus palos
saludos chicos
Nausicaa
  #25 (permalink)  
Antiguo 13/10/2006, 10:20
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
si, tienes que subir un archivo vacío que diga comentarios.txt

Y sólo debes dar el permiso en el archivo de texto, si lo das en todo lo demás es super peligroso, por ejemplo cuando instalas un joomla o mambo tienes que dar los permisos a todo, y luego cerrarlo, una vez a mi se me olvido, y me hackearon completo el sitio...

asi que solo en el archivo
  #26 (permalink)  
Antiguo 16/10/2006, 09:39
 
Fecha de Ingreso: octubre-2005
Mensajes: 93
Antigüedad: 18 años, 6 meses
Puntos: 0
gracias erick y fanny
ingrese el archivo de texto y ya me funciona
pero cuando se ingresa un comentario mas grande
ese grande borra todos los anteriores
que se puede hacer al respecto?

Como se crean paginas nuevas automaticamente con comentarios antiguos, cuando se pasan el limite de 10 comentarios?

Como limitar la cantidad de caracteres con un contador de contenido?
gracias chicos
Nausicaa
  #27 (permalink)  
Antiguo 17/10/2006, 10:23
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
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 // 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 // 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
  #28 (permalink)  
Antiguo 17/10/2006, 15:19
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 5 meses
Puntos: 1
ok, muchas gracias te pasaste...lo probaré, de todas maneras como te demoraste unos días en escribirlo, ya pensé que no nos ibas a responder y cree todos los libros...son 87 libros de comentarios, entonces ahora me da una paja increíble volver a crearlos, veré si puedo modificar solo una parte, había colocado que se leyeran 100 mensajes...y los demás sólo quedan guardados en el seridor en el archivo de texto, ya que me di cuenta que no es que se borren si no que no aparecen simplemente...
Veré si puedo modificar lo ya hecho, en tanto al cliente le gustó asi, veremos que ocurre cuando ya empiece a funcionar...
  #29 (permalink)  
Antiguo 17/10/2006, 15:24
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Cita:
Iniciado por fanny0 Ver Mensaje
ya pensé que no nos ibas a responder y cree todos los libros...son 87 libros de comentarios, entonces ahora me da una paja increíble volver a crearlos
No tienes que hacer eso solo no modifiques el archivo comentarios.txt ya que los cambios que hice son sólo para la lectura de este. Pruebalo sin borrar tu archivo comentarios.txt y veras a lo que me refiero. suerte
  #30 (permalink)  
Antiguo 18/10/2006, 10:50
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Cita:
Iniciado por nausicaa Ver Mensaje
cuando se ingresa un comentario mas grande
ese grande borra todos los anteriores
que se puede hacer al respecto?
No tiene porque borrartelos ya que al mostrar los comentarios el código no se basa en el tamaño de este y no tiene porque estar ocupando mucho espacio hacia lo alto ya que para eso le pusimos un limite de alto al textatrea. ¿acaso probaste el nuevo código?

Cita:
Iniciado por nausicaa Ver Mensaje
Como limitar la cantidad de caracteres con un contador de contenido?
Para hacer esto checa este enlace y agregaselo a tu código

http://www.elcodigo.net/cgi-bin/DBre...lave=98&info=1

Suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:19.