Foros del Web » Programando para Internet » PHP »

Navegabilidad

Estas en el tema de Navegabilidad en el foro de PHP en Foros del Web. Hola a todos, en todas las páginas tengo las siguientes etiquetas meta: Código PHP: < meta http - equiv = "expires"  content = "Thu, 27 Mar 1980 23:59:00 GMT"  /> < ...
  #1 (permalink)  
Antiguo 18/04/2008, 05:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Navegabilidad

Hola a todos,

en todas las páginas tengo las siguientes etiquetas meta:

Código PHP:
<meta http-equiv="expires" content="Thu, 27 Mar 1980 23:59:00 GMT" />
<
meta http-equiv="Pragma" content="no-cache"  />
<
meta http-equiv="Cache-control" content="no-cache"  />
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
En un fichero de .php, al llamarlo se ejecuta una sesión y dentro de esta mas acciones como insertar, modificar,eliminar,etc. Cada vez que se accede a una de estas opciones, permito la posibilidad de que si se pulsa el botón cancelar, vuelva al anterior sitio, con los datos de antes. Esto lo hago con javascript asi:

Código PHP:
 onClick="history.go(-1)" 
Pero cuando pulso el botón, me dice que ha caducado la página y que tiene que volver a mandar el formulario y entonces me sale la información duplicada o con un elemento más.

¿Cómo puedo hacer para que vuelva a la página anterior conlos datos anteriores?
  #2 (permalink)  
Antiguo 18/04/2008, 07:00
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Navegabilidad

Se trata de un formulario?

De todas formas, con esas lineas del "meta" que estas incluyendo, le estas diciendo que la página ya caducó (la cache) en 1980 amigo.

Creo que es eso.
Quita las lineas y prueba.

SAludos
  #3 (permalink)  
Antiguo 18/04/2008, 09:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Navegabilidad

Si son formularios dinámicos, quitando esas etiquetas, me sigue pasando lo mismo. Lo cual es más que raro porque efectivamente ya no les digo que se caduquen las paginas.

NO entiendo 2 cosas:

1º Si he quitado las etiquetas meta, porque me caducan las páginas.

2º¿Por qué al refrescar, me duplica datos? Que puede ser porque al refresar envía una vez mas y añade el dato que le da a la sesión.

No sé, son sólo hipótesis.
  #4 (permalink)  
Antiguo 18/04/2008, 09:29
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Navegabilidad

Claro...

Cuando se trata de formularios, y refrescas la página, el explorador te dice algo como:

Código:
 
Para mostrar de nuesvo esta página web, 
internet explorer debe volver a enviar la onformación que ya envió anteriormente.
Si estuviera realizando una compra, 
haga click en cancelar para que la transacción no se realice dos veces. 
De otra forma, haga click en Reintentar para volver a mostrar la página web
Ya el IE te está explicando, si le das a reintentar, vuelve a enviar todos los datos del formulario y si pones cancelar te sale con el mensaje "la página ha caducado".

Cuál es la solución??

Cuando termines de procesar tu formualrio, reenvia con un

header("Location index.php?blablabla"); de esa manera evitarás que el form se envie dos veces y que te ponga que la pagina caducó.

Prueba y me cuentas

Saludos
  #5 (permalink)  
Antiguo 18/04/2008, 09:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Navegabilidad

Cita:
Iniciado por usermax Ver Mensaje
Claro...

Cuando se trata de formularios, y refrescas la página, el explorador te dice algo como:

Código:
 
Para mostrar de nuesvo esta página web, 
internet explorer debe volver a enviar la onformación que ya envió anteriormente.
Si estuviera realizando una compra, 
haga click en cancelar para que la transacción no se realice dos veces. 
De otra forma, haga click en Reintentar para volver a mostrar la página web
Ya el IE te está explicando, si le das a reintentar, vuelve a enviar todos los datos del formulario y si pones cancelar te sale con el mensaje "la página ha caducado".

Cuál es la solución??

Cuando termines de procesar tu formualrio, reenvia con un

header("Location index.php?blablabla"); de esa manera evitarás que el form se envie dos veces y que te ponga que la pagina caducó.

Prueba y me cuentas

Saludos

Sí, por ahí deben de andar los tiros. Pero perdoname, porque no he entendido muy bién la solución. Debo poner en cada fichero que crea el formulario dinámico: header(Location etc)...es que todavía no tengo el index. Si eres tan amable de detallarme como va eso, te lo agradecería y sino no te preocupes que ya lo miraré como funciona.

De todas formas gracias.
  #6 (permalink)  
Antiguo 18/04/2008, 09:58
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Navegabilidad

Tu cuando envías el formulario, lo envías a un fichero php para que lo procese.

Si?

Ese fichero php puede guardar los datos del formulario en una base de datos, enviar un email, etc, etc.

Supongamos que el formulario es:

formulario.php

y lo envias a

gestionar.php


En gestionar, luergo de procesar como te detalle arriba, al final del fichero haces un

header("location: formulario.php");

entonces alfinal del proceso del form lo vuelves a enviar al formulario pero sin la postdata y sin que caduque la página.

En ves de enviarlo al formualrio nuevamente lo puedes enviar a otra página que diga "éxito, el form fue procesado"

header("location: exito.php");

En fin, cuando uses el header location, aunque quieras volver ccon el navegador a la pagina anterior, volverá pero sin la postdata y sin que caduque el formulario,volverá al formulario original.

Ahora me explico mejor??
  #7 (permalink)  
Antiguo 18/04/2008, 10:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Navegabilidad

Voy a probar y te cuento.
  #8 (permalink)  
Antiguo 18/04/2008, 11:00
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Navegabilidad

Vamos a ver si me entero (que hoy estoy muy espeso).

Yo tengo un fichero con un formulario en el que un usuario se identifica.

Si es válido:

-muestra en un formulario dinámico sus datos(si tiene). Estos datos a su vez estan en otros formularios dinámicos. Muestra opciones de añadir,modificar,eliminar...los respectivos datos. Cada opción, evidentemente va a una acción distinta.

Cada opción tiene su correspondiente apceptar y cancelar.

He visto que hay una variable global que te dice de donde viene: $HTTP_REFERER

Mi pregunta es :¿Dónde podría poner el header('Location $HTTP_REFERER ')?

o incluso si ¿en lugar de utilizar javascript(), podría sustituirlo por lo de arrba?

No sé si me he explicado bién(creo que no)
  #9 (permalink)  
Antiguo 18/04/2008, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Navegabilidad

HTTP_REFERRER es global,si tienes register_globals=ON

sino.-... es $_SERVER['HTTP_REFERRER'];

ahora... para ke redireccionar al referrer??
sabes como funciona??

asi...

si yo hallo tu pagina en google.... el referrer pasa a ser google, entonces... kieres volver a la misma pagina ke usaste.... usa

$_SERVER['REQUEST_URI'];

weno, a mi modo de entenderlo...
  #10 (permalink)  
Antiguo 18/04/2008, 11:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Navegabilidad

Vale probaré eso mañana, a ver si estoy mas despejado.

Ya os diré como me ha ido.

Gracias a todos.
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 07:55.