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 erick use este codigo el codigo resulta en que divide un post mas o menos regular (en cantidad de texto ) en 3 comentarios ...

  #31 (permalink)  
Antiguo 09/11/2006, 10:16
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
fallos en este codigo+

Hola erick

use este codigo

el codigo resulta en que divide un post mas o menos regular (en cantidad de texto ) en 3 comentarios de letras de tamaño grande que ensanchan las tablas
y solo pone la primera frase y no se lee mas

Tambien me he dado cuenta que el borrado de los comentarios indeseados es dificil: lo que hice fue abrir los archivos de texto y borrar los comentarios que contiene pero nada...se mantienen

podrias mejorarlo por favor?
serias un gol
gracias
Jin
  #32 (permalink)  
Antiguo 10/11/2006, 08:51
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
Erik estas por aqui?
el codigo necesita pequeños ajustes

ayudanos
  #33 (permalink)  
Antiguo 10/11/2006, 09:18
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 JinSunMi Ver Mensaje
el codigo resulta en que divide un post mas o menos regular (en cantidad de texto ) en 3 comentarios de letras de tamaño grande que ensanchan las tablas y solo pone la primera frase y no se lee mas
Lo del tamaño de la letra de los comentarios lo puedes arreglar agregando una definición de tamaño de letra. Cambia la sig. línea:
Código PHP:
echo "<textarea style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto\" readonly>"
Por esta otra:
Código PHP:
echo "<textarea style=\"width: 400px; height: 40px; border: 0; background-color:transparent; overflow: auto; font-size: 12pt\" readonly>"
Como vez sólo agregarías font-size: 12pt para especificar el tamaño de letra yo le puse 12 pero tú puedes ponerle el que quieras y en cuanto a lo de que no te muestra todo el comentario no se porque no lo hace ya que no le estamos poniendo un limite de caracteres a el textarea debería de mostrarte una barra de desplazamiento hacia abajo para mostrarte el texto restante. Checalo bien.
Cita:
Iniciado por JinSunMi Ver Mensaje
Tambien me he dado cuenta que el borrado de los comentarios indeseados es dificil: lo que hice fue abrir los archivos de texto y borrar los comentarios que contiene pero nada...se mantienen
Lo que hicimos en el código es que los comentarios indeseados no se mostrarán en pantalla más no que los borrará del documento .txt si lo que quieres es que no se guarden en el doc. .txt lo que deberías hacer es sustituir los comentarios indeseados antes de guardarlos en el documento, eso lo haces cambiando el if que se encarga de guardar los comentarios de la sig. manera:
Código PHP:
if ( isset ( $_POST['submit'] ) ) // si presionaron el boton de Enviar 

   
$groserias = array ( 'PINCHE''CABRON' ); // disculpen las groserias pero, recuerden que las pueden poner, aquí pongan todas las que no quieran que aparezcan  
   // 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 ), 'àáâãäåæçèéêëìíîïðñòóôõöøùüú''ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ' ); 
   
$comentario str_replace $groserias'?@$#&'$comentario ); // remplazamos las malas palabras que fueron escritas en el campo comentario por signos 

   // 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 

Como vez sólo le agregue el array $groserias y la línea que se encarga de remplazar las malas palabras por algunos signos que las representen.
Bueno espero que con esto queden solucionadas tus dudas, cualquier duda o comentario hazmelo saber. Suerte
  #34 (permalink)  
Antiguo 10/11/2006, 09:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por JinSunMi Ver Mensaje
Erik estas por aqui?
el codigo necesita pequeños ajustes

ayudanos
Por favor .. mensajese "personales" en privado: usen el sistema de mensajería Privada (que para eso está).

Recuerda que esto es un foro "público" cualquiera podría ayudarte (no desmerezcan esa ayuda posible con mensajes "personalizados").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #35 (permalink)  
Antiguo 10/11/2006, 10:10
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 6 meses
Puntos: 1
el codigo esta bien hecho a mi me funciona sin ningún problema, tal vez no actualizaste el navegador...

... y por si aca, no eran 78 comentarios...si no 78 libros, el archivo txt es lo de menos en mi caso...no había hecho más comentarios que de prueba
  #36 (permalink)  
Antiguo 10/11/2006, 13:23
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
quizas el problema sea en firefox
porque es el que uso
pero si esta fallando

en todo caso fanny dime
a que te refieres exactamente con libros?
me puedes explicar mas de eso?
plisss
gracias
Jin
  #37 (permalink)  
Antiguo 12/11/2006, 12:11
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 6 meses
Puntos: 1
Pregunta

que no entiendes?..son 78 libros diferentes no 1 libro de comentarios si no que 78....Tu hiciste el ejemplo para un libro de comentario, lo que yo hice fue cambiar los nombres
ej:

libro1.php - comentarioslibro1.txt
libro2.php - cometarioslibro2.txt

etc...hasta llegar a la cantidad que necesitaba

y los vincule y me quedaron bien...filo con eso...

pero eso es lo de menos no voy a cambiarlo en estos momentos por lo menos


Tengo otra pregunta....

quiero saber como puedo colocar un vinculo al libro de comentarios que diga


"COMENTARIOS (5)"

Y ME DIGA EN EL VINCULO LA CANTIDAD DE COMENTARIOS QUE EXISTEN DENTRO DEL LIBRO
  #38 (permalink)  
Antiguo 13/11/2006, 14:41
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 6 meses
Puntos: 1
Pregunta Contador de Comentarios

Tengo un codigo para contavilizar visitar...

<?php

$counterFile = "visitas.txt";

function displayCounter($counterFile) {
$fp = fopen($counterFile,rw);
$num = fgets($fp,5);
$num += 1;
echo "$num";
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
}

if (!file_exists($counterFile)) {
exec( "echo 1 > $counterFile");
}

displayCounter($counterFile);

?>
...como puedo modificar esto para que contavilice los comentarios de un lirbo en php guardados en un archivo txt

el codigo del libro está acá


http://www.forosdelweb.com/showthread.php?t=432845

es el primer libro creado, es un libro muy muy sencillo

si alguien quiere que vuelva a postear el codigo por favor me avisa


muchas gracias...

Saludos!
  #39 (permalink)  
Antiguo 13/11/2006, 16:25
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
Tengo otra pregunta.... quiero saber como puedo colocar un vinculo al libro de comentarios que diga "COMENTARIOS (5)" Y ME DIGA EN EL VINCULO LA CANTIDAD DE COMENTARIOS QUE EXISTEN DENTRO DEL LIBRO
Mira, en el archivo ejemplo.php deberías agregar una función javascript para que te jale el número de comentario que quieres ver y a su vez te redireccione a al archivo que te mostrara ese comentario, comentario_especifico.php por decir algo:
Código PHP:
   <script languaje="javascript">
   function 
redireccion()
   {
      
window.open'comentario_especifico.php?num_comentario=' document.form.num_comentario.value );
   }
   
</script> 
y también agregarías el campo donde el usuario escribiria el número de comentario que quiere ver:
Código PHP:
<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"><p>
Escriba el número de comentario que desea ver: <input type="text" name="num_comentario" size="3">
<input type="button" value="Ver" onclick="redireccion()">
</form>
Con lo que el archivo ejemplo.php quedaría de esta forma:
ejemplo.php
Código PHP:
<html>
<head>
   <script languaje="javascript">
   function redireccion()
   {
      window.open( 'comentario_especifico.php?num_comentario=' + document.form.num_comentario.value );
   }
   </script>
</head>
<body>
<?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"><p>
Escriba el número de comentario que desea ver: <input type="text" name="num_comentario" size="3">
<input type="button" value="Ver" onclick="redireccion()">
</form>
</body>
</html>
Y obviamente tambien tendrías que hacer el archivo comentario_especifico.php para que se encargue de mostrar el comentario que el usuario solicito:
comentario_especifico.php
Código PHP:
<?php 
if ( isset ( $_GET['num_comentario'] ) ) // si se envio por metodo Get el número de comentario

   
$ruta "comentarios.txt"// ruta completa hacia el archivo que vamos a crear 
   
$num_comentario $_GET['num_comentario']; //esta será la variable que nos indicara que comentario buscar

   
$lee_archivo file $ruta ); // abrimos el archivo y lo leemos 

   
if ( $lee_archivo // si existe el archivo 
   

      
$numero_de_comentarios count $lee_archivo ); // no. de comentarios que han sido guardados 

      
if ( $numero_de_comentarios $num_comentario )
      {
         echo 
"El número de comentario: ".$num_comentario." no existe.";
         exit;
      }

      
// 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'); 

      
$groserias = array ( 'PINCHE''CABRON' ); // disculpen las groserias pero, recuerden que las pueden poner, aquí pongan todas las que no quieran que aparezcan  

      
echo "Este es el comentario No. <b>".$num_comentario."</b> de <b>".$numero_de_comentarios."</b> comentarios que estan guardados en el libro ".$ruta."<br/>"// mostramos el comentario que deseamos y el número de comentarios que existe en total

      
for ( $e = ( $num_comentario ); $e $num_comentario$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 
      
}
   }
}
else
{
   echo 
"No se envio un número de comentario para verlo. Por favor intentelo nuevamente";
}
?>
Como vez es muy sencillo, para obtener el número total de comentarios sólo tienes que hacer uso de la variable $numero_de_comentarios. Tambien debes de tener el archivo mascomentarios.php que ya habiamos hecho en este mismo post. Bueno, espero que esto te haya funcionado y que sea lo que necesitabas. Cualquier duda hazmela saber, aunque me tarde un poquito en contestar debido a que probablemente me encuentre ocupado pero que a fin de cuentas yo lo checaré o algún otro forista que desee ayudarte. Suerte
  #40 (permalink)  
Antiguo 13/11/2006, 16:30
Avatar de fanny0  
Fecha de Ingreso: noviembre-2004
Mensajes: 438
Antigüedad: 19 años, 6 meses
Puntos: 1
ok, muchas gracias....
  #41 (permalink)  
Antiguo 30/11/2006, 16:37
Avatar de byweb  
Fecha de Ingreso: marzo-2006
Ubicación: Lucena (Cordoba)
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
De acuerdo

Muy bueno el aporte, pero creo que habria que afinarlo más, por mucho que agrandes el TextArea contenedor del comentario (actualmente lo puse a 600 x 100 px ) solo te escribe dos frases, el resto lo hace insertando otro comentario encima, pero agrandando el TextArea a 100% y las letras se ven mas grande tb. Habria que mejorar eso. Lo intentare, pero no se si lo lograré.
__________________
byweb Soluciones Multimedia
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 02:17.