Foros del Web » Programando para Internet » PHP »

Ayudaa Sistema Comentarios [PHP]

Estas en el tema de Ayudaa Sistema Comentarios [PHP] en el foro de PHP en Foros del Web. Estoy haciendo un sistema de comentarios bien simple y por mas que lo tengo funcionando meda un enorme problema, El cual se trata que al ...
  #1 (permalink)  
Antiguo 26/09/2011, 18:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Ayudaa Sistema Comentarios [PHP]

Estoy haciendo un sistema de comentarios bien simple y por mas que lo tengo funcionando meda un enorme problema,

El cual se trata que al enviar el comentario utilizo la funcion header para refrescar automaticamente la pagina y asi aparesca el comentario,

el problema es que si se vuelve a recargar la pagina se repite el ultimo comentario es decir que si se refresca mil veces aparece mil veces ese ultimo comentario por lo que seria un bug importante.

Me gustaria saber si existe una solucion para esto y que mas me pueden recomendar en cuanto a seguridad y si conocen algun buen manual de ese tema tambien me seria mu util.

Dejo el codigo:

Código PHP:
<?php 
$re
=mysql_query('select * from comentarios where idNoticia ="'.$_GET['id'].'" ');
while(
$f=mysql_fetch_array($re)){
echo 
"<b>Nombre: </b><br />";
echo 
'<tr>'.$f['nombre'].'</td></tr><br /><br />';
echo 
"<b>Comentario: </b><br />";
echo 
'<tr>'.$f['comentario'].'</td></tr><br />';
echo 
"<b>---------------------------------------------</b><br /><br />";
}
?>
<form action="noticia.php?id=<?php echo $_GET['id']?>" method="post">
Nombre:
<br/>
<input type="text" name="nombre"/>
<br/>
Comentarios:
<br/>
<textarea name="comentario"></textarea>
<br/>
<br/>
<input type="hidden" name="idNoticia" value="<?php echo $_GET['id']?>"/>
<input type="submit" name="enviar" value="Enviar" />
</form> 
<?php 
$nombre
=$_POST['nombre'];
$comentario=$_POST['comentario'];
$idNoticia=$_POST['idNoticia'];
if(
$nombre!="" and $comentario!=""){
mysql_query("insert into comentarios(nombre,comentario,idNoticia) values('$nombre','$comentario','$idNoticia')");
header("location:noticia.php?id=$_GET[id]");
}
?>
  #2 (permalink)  
Antiguo 26/09/2011, 18:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayudaa Sistema Comentarios [PHP]

Ahi vi que estoy pasando la url por action, asi que el header es innecesario, pero el bug se mantiene.
  #3 (permalink)  
Antiguo 26/09/2011, 18:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayudaa Sistema Comentarios [PHP]

Solucionado, busque un poco y era con un simple isset, me falta mucho de seguridad si tienen algo para recomendarme se los agradesco.

Código PHP:
<?php if(isset($_POST['enviar']){
if(
$nombre!="" and $comentario!=""){
 
//Insert y toda la bola
}
}
?>
  #4 (permalink)  
Antiguo 26/09/2011, 18:52
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Ayudaa Sistema Comentarios [PHP]

eso es así porque procesas la el formulario en la misma pagina en la que muestras la noticia entonces cada ves qeu recargas la pagina se ejecuta

Código PHP:
Ver original
  1. mysql_query("insert into comentarios(nombre,comentario,idNoticia) values('$nombre','$comentario','$idNoticia')");
  2. header("location:noticia.php?id=$_GET[id]");
  3. }

porn el script que incerta la noticia en otra pagina y luego redirige la la pagina de noticias
  #5 (permalink)  
Antiguo 26/09/2011, 18:57
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Ayudaa Sistema Comentarios [PHP]

claro esa era la otra opción que justamente estaba describiendo ...

en cuantoa ala seguridad dos cosas

1º comprueba que los campos tengan los valores que esperas

2º usa mysql_real_escapre_strin() antes de insert
  #6 (permalink)  
Antiguo 26/09/2011, 19:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayudaa Sistema Comentarios [PHP]

Perfecto!!
Tengo varios scripts funcionando como este pero con esa gran falta de seguridad, empezare con esto que me dijiste y asi despues mejorarlos. Graciass

Etiquetas: comentarios, mysql, sistema
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 06:06.