Foros del Web » Programando para Internet » PHP »

consulta, tengo dudas

Estas en el tema de consulta, tengo dudas en el foro de PHP en Foros del Web. Ola bueno tengo un problema a la hora que muestro un listado de mis pedidos muestro datos de cabecera y le doy la opcion de ...
  #1 (permalink)  
Antiguo 29/04/2006, 11:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 5 meses
Puntos: 0
consulta, tengo dudas

Ola bueno tengo un problema a la hora que muestro un listado de mis pedidos muestro datos de cabecera y le doy la opcion de que generen un pdf, ok, l problema viene aqui, por decir:

Pasos:
1. Entra el cliente y genera un pdf.
2. Al ratito modifica su pedido, y entonces la data es nuevapor decir otro total
3. Entonces de nuevo quiere un pdf, pero la data que le muestra es la anterior y no la data nueva.

Creo que el problema es que la pagina se almaceno en memoria y entonces ya no va al servidor y solo muestra la nueva.

Lo que hago por el momento es ir manualmente al menu Herramientas=>Opciones de Internet y Eliminar Archivos del IE.

Hay alguna manera script php o javascript para que la pagina no se almacene en memoria y vaya al servidor, para cada pedido o mucho mejor serai si va solo si hay cambios, pero me conformo con la primera opcion.
  #2 (permalink)  
Antiguo 29/04/2006, 12:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Cada vez que un cliente genera un PDF tiene que llamar a una página php está se ejecuta del lado del servidor y genera el PDF resultante. No tiene porqué pasarte eso a no ser que:

1) Tengas implementadas funciones de cache o utilizes algun servidor tipo de Web proxy Cache como Squid.
2) Utilizes javascript para generar el pdf (es posible generar Pdfs desde javascript??? ni idea).
  #3 (permalink)  
Antiguo 30/04/2006, 03:48
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Tu documento debe incluir la cabecera header("Last-Modified: fecha-formato-correcto");

Así el navegador sabe cuál fue la fecha de última modificación.

Cuando se le pide nuevamente el documento, el explorador ya tiene el doc y le envía al server la fecha que tiene (tú puedes ver esa fecha en el server mediante la variable $_SERVER['HTTP-IF-MODIFIED-SINCE'], sólo te la enviará, obviamente, si el documento ya está previamente en el navegador.

Mediante esa variable, tú debes decidir si esa fecha corresponde o no al PDF actualizado que debe ver. Si es la misma, le regresas un header("HTTP/1.1 304 Not changed"); y el navegador sabrá que la copia que posee está vigente aún. De lo contrario, lo generas y lo envías nuevamente.

A esto añadirle que tienes que enviarle un header("Content-Type: no-cache, must-revalidate") para que nunca cachee, sino más bien que SIEMPRE le envíe al servidor la fecha de última modificación que tiene y ya el servidor decidirá (tú lo tienes qeu decidir) si le envia otro PDF generado al vuelo o bien, un código 304 para hacerle saber que el doc. que el naveg. contiene está bueno todavía.

Si no quieres complicarte, genera uno siempre. Incluye un header("Content-Type: no-store, must-revalidate"); ya que no-store es muy estricto y no permite que se cacheen los documentos en el destino.
No importa si no envías una cabecera Expires, es redundante hacerlo, aunque algunos servidores la envían por default. Yo lo quito con session_set_limiter("privated_no_expires"); de la anterior función, checa la sintaxis, ya que no recuerdo bien si ese parámetro va así.

Bueno, saludos !
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 02/05/2006, 09:20
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 5 meses
Puntos: 0
olas amigo de veras muchas me sirvir de mucho aunque tuve ke hacer unas modifcaciones ya ke mi sistema es modular y bueno pero de todas maneras es tuvo supe de donde sabes tanto sobre los header ah ay lgun libro o tutorial bueno
  #5 (permalink)  
Antiguo 02/05/2006, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por soonye
olas amigo de veras muchas me sirvir de mucho aunque tuve ke hacer unas modifcaciones ya ke mi sistema es modular y bueno pero de todas maneras es tuvo supe de donde sabes tanto sobre los header ah ay lgun libro o tutorial bueno
Si, .. el "protocolo HTTP" .. esa es la documentación oficial de todo lo que uamistad indica.

El protocolo HTTP se rige por unos "documentos": RFC's

Concretamente puedes empezar por:
http://www.w3.org/Protocols/rfc2616/rfc2616.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 03/05/2006, 14:51
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 5 meses
Puntos: 0
hey amigo lo intente pero pense ke no lo almacenaba en memoria, pero error, si lo guarda hay un error en la funcion [B]session_set_limiter("privated_no_expires");[B] y bueno lo hice de la forma mas facil coloque en mi script el header

//los 2 primeros me recomendaste
header("Content-Type: no-store, must-revalidate");
session_set_limiter("privated_no_expires");
session_cache_limiter('private');//esto siempre va

rekuerda que este script genera pdf ah!!!
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 01:04.