Foros del Web » Programando para Internet » PHP »

problemas con sistema de comentarios

Estas en el tema de problemas con sistema de comentarios en el foro de PHP en Foros del Web. Hola, mirar tengo un sistema de comentarios , y estoy teniendo el siguiente problema, la gente deja su comentario entonces una vez dejado se les ...
  #1 (permalink)  
Antiguo 25/04/2003, 20:39
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 15 años, 10 meses
Puntos: 2
problemas con sistema de comentarios

Hola, mirar tengo un sistema de comentarios , y estoy teniendo el siguiente problema, la gente deja su comentario entonces una vez dejado se les redirecciona a la pagina de todos los comentarios , entre los que se incluye el suyo.

un vez ahi le dan al boton atras y entonces vuelven a dejar el mimso comentario asi q tengo la web llena de comentarios dobles

Como puedo hacer para que me cuando le den a ataras me lleve a la anterior de la anterior?

O alguna solucion para esto

No se si me explico

gracias y un saludo
  #2 (permalink)  
Antiguo 25/04/2003, 20:45
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Por que no forzas el referer?

Código PHP:
if ($_SERVER["HTTP_REFERER"]!="http://www.tupagina.com/tuformulario.php") {
header ("Location: http://www.tupagina.com");
} else {

//Aqui procesas el formulario...


Bueno esa es la idea... puedes hacerla tan versatil como quieras, por ejemplo, puedes guardar en la sesion la ultima pagina visitada y ponersela a Location: $_SESSION["ultima"]...

Saludos
__________________
Manoloweb
  #3 (permalink)  
Antiguo 26/04/2003, 19:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema que tienes no es nuevo ... Les pasa a muchasss aplicaciones que muestran algún mensaje de "exito/error" en el mismo script que hace el proceso de almacenar esos datos donde corresponda.

Esto sucede porque estructuran los "scripts" tipo:

Código PHP:
<?
// capturo datos del formulario
// hago un proceso y termino con un:
echo "sus datos bla bla bla llegaron bien ..";
?>
Cuando, lo que debería hacerse es:


Código PHP:
<?
// le llegan los datos .. 
// hace el proceso
// redireccionas a otra página para darle el mensaje de "OK" o de algun error ..
// El redireccionamiento lo debes hacer automático:
header("location: pagina_mensajes.php");
exit;
?>
La "pagina_mensaje.php" .. no tiene por qué ser una página dedicada a ello .. Puede ser el la misma página que usas para el formulario (en caso de algún error) o esa que tienes que presentas el listado de lo que intrudujo (datos) .. Eso sí, eso se controla con una variable de "control" que la puedes pasar por el URL o en una cookie/session ..

El "redireccionamiento" quedaría (con la variable de control):

Código PHP:
header("location: tuscriptactualquecorresponda.php?control=OK"); 
Y en tuscriptactualquecorresponda.php

Código PHP:
<?
// Donde quieras presentar el mensaje de error/exito ...
if (isset($_GET['control'])){
echo 
"El proceso fué: ".$control;
}

// resto de tu actual script ...

?>
A su vez si quieres en esa página que das el OK (que ya no es la misma que almacenó esos datos en tu BD o donde corresponda) puedes redireccionar via un simple link hacia donde quieras .. ya sea un link, automático a tiempo (cabeceras de refresh) .. etc).

Pero recuerda .. SIEMPRE abandona el script que haga el proceso de gestión de esos datos que le llegan desde un formulario a otra página .. Aunque sea a si mismo . .pero redireccionado automáticamente via por ejemplo cabeceras Header() como te comentá Manoloweb ..

Bueno, no sé si habrá quedado claro lo que expongo .. Pero lo comento por qué no es un erro que te sudeda a ti solo .. Hay muchass aplicaciones rondando por muchos sitios que les sucede lo mismo .. desde simple libros de visitas hasta foros .. En general le sucede a cualquier aplicación que use la estructura que planteé al principio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 26/04/2003 a las 19:40
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 18:45.