elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Comentarios. Sin recargar ni BD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comentarios. Sin recargar ni BD  (Leído 2,493 veces)
‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Comentarios. Sin recargar ni BD
« en: 20 Agosto 2008, 12:56 pm »

He estado buscando por el foro y no encuentro lo que busco, quiero hacer un sistema de comentarios en el que no tenga que acceder a otra página ni recargar, ni usar bases de datos. Un formulario, escribo, le doy al botón y aparece instantáneamente.

Aquí está lo que tengo:

Código
  1. <html>
  2. <head>
  3. <title>Prueba</title>
  4. </head>
  5.  
  6. <body>
  7. <font color="#009966">Texto de prueba</font><br><br><br>
  8. <?
  9. $texto = $_POST['texto'];
  10. $text = $texto . "FinDeComentario";
  11. $archivo = fopen("comentario.txt", "a");
  12. fputs($archivo, $text);
  13. fclose($archivo);
  14.  
  15. $nombre_archivo = "comentario.txt";
  16. $gestor = fopen($nombre_archivo, "r");
  17. $contenido = fread($gestor, filesize($nombre_archivo));
  18. fclose($gestor);
  19.  
  20. $comentario = explode("FinDeComentario", $contenido);
  21.  
  22. foreach ($comentario as $clave => $valor)
  23. {
  24. echo $valor . "<br>";
  25. }
  26.  
  27.  
  28. ?>
  29. <form method="post">
  30. <textarea name="texto" cols="50" rows="5"></textarea>
  31. <br>
  32. <input type="submit" value="Añadir comentario">
  33. </form>
  34. </body>
  35. </html>
  36.  

Explico para los que no se lo quieran leer, el código lo que hace por orden:

-Escribe en comentario.txt el comentario seguido de la cadena "FinDeComentario"
-Leo todo el archivo
-Hago una matriz gracias al explode en la que cada índice es un comentario diferente.
-Con el foreach muestro toda la matriz (es decir, todos los comentarios)

Pero esto me da varios errores:
-Cada vez que refresco el documento o le doy a "escribir comentario" se guarda un caracter en blanco en la matriz y luego este caracter aparece en la página como un salto de línea
-Al principio, cuando no hay comentarios muestra un error porque no hay comentarios

El segundo problema lo puedo solucionar si pongo el código php debajo del formulario, pero yo quiero que aparezca encima.

¿Alguna idea?

Saludos


En línea

ActiveSheet


Desconectado Desconectado

Mensajes: 389


Feeling Jazz


Ver Perfil WWW
Re: Comentarios. Sin recargar ni BD
« Respuesta #1 en: 21 Agosto 2008, 19:30 pm »

usa el concepto ajax para si no quieres que se refresque la pagina.


En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Comentarios. Sin recargar ni BD
« Respuesta #2 en: 26 Agosto 2008, 17:13 pm »

Hola:

Que tal lipman_dj, hace un par de años, hice un sistema web (tipo WordPress, PHPNuket, etc..) pero con la particularidad de que toda la informacion se guardaba en archivos (ficheros) asi que cnstantemente las: noticias, secciones, menus, comentarios, URLs, etc, etc... las guardaba directamente en archivos. Mi sistema es muy rapido, a pesar de usar archivos, pero esto se lo debo a que para leer y sacar informacion de los archivos utilizaba una forma totalmente distinta la que usas tu jejeje.

Yo utilizaba caracteres delimitadores para determinar o saber cuando empezaba o terminaba algo, ese algo podia ser: una noticia, una sección, un menu, un comentario, etc, etc...

Los caracteres que yo utilizaba eran: ->  para indicar el inicio de algo y --> para indicar el fin de algo. Otra cosa muy importante, no te recomiendo utilizar fread(), ya que si el archivo llega a pesar mucho el servidor se hara cada vez mas lento y por ende tambien la pagina :D !. Yo utilizaba fgets(), osea que leia linea por linea del texto y utilizaba una funcion recursiva para leer todo el contenido que estaba entre los caracteres especiales -> y -->.

Potseriormente para hacer el efecto de carga sin refrescar la pagina utilizaba AJAX (como te lo ha mencionado ActiveSheet), asi que para eso es necesario que tengas conocimientos basicos de javascript y adentrarte un poco en lo que es AJAX.

Te recomiendo los manuales/tutoriales de critalabs para aprender AJAX !! :D. En realidad AJAX es una cosa muy facil, que si tienes buenos conocimientos en programacion y una buena logica, podras hacer tus codigos funcionales con AJAX en menos de un dia ;) !!..

bye bye
En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Comentarios. Sin recargar ni BD
« Respuesta #3 en: 27 Agosto 2008, 11:37 am »

Muchas gracias a los dos ^^

Primero de todo voy a seguir con PHP y cuando sepa más seguiré por javascript y lo que me dicen para poder hacer lo de los comentarios, un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO][PROBLEMA]Error al recargar .bashrc
GNU/Linux
RyogiShiki 7 9,479 Último mensaje 22 Enero 2011, 18:07 pm
por RyogiShiki
recargar el CSS
Desarrollo Web
basickdagger 1 2,309 Último mensaje 16 Noviembre 2011, 02:31 am
por EFEX
duda.. recargar script
Desarrollo Web
basickdagger 2 1,932 Último mensaje 13 Mayo 2013, 20:15 pm
por basickdagger
Recargar div con jQuery
Desarrollo Web
blaknez root 2 2,896 Último mensaje 14 Julio 2014, 15:46 pm
por blaknez root
Recargar pagina php
PHP
kakashi20 5 2,988 Último mensaje 16 Septiembre 2014, 15:46 pm
por Graphixx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines