Foros del Web » Programando para Internet » PHP »

pagina que caduca en php

Estas en el tema de pagina que caduca en php en el foro de PHP en Foros del Web. Hola listeros espero me ayuden, el problema es el siguiente: al dar clic en el boton "atras" (back) sale el mensaje "esta pagina ha caducado ...
  #1 (permalink)  
Antiguo 26/03/2004, 07:18
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 8 meses
Puntos: 0
pagina que caduca en php

Hola listeros espero me ayuden, el problema es el siguiente:
al dar clic en el boton "atras" (back) sale el mensaje "esta pagina ha caducado . . . "

como evitar o controlar esto . .


gracoias
  #2 (permalink)  
Antiguo 26/03/2004, 08:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usas sesiones?

Si pones o explicas el código que usas (proceso) .. podrémos ver donde solventar el problema ..

El problema se suele producir cuando se usan sesiones ya que estas (por defecto) envian cabeceras de "no chaché" al navegador.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/03/2004, 09:17
 
Fecha de Ingreso: agosto-2003
Mensajes: 2
Antigüedad: 20 años, 8 meses
Puntos: 0
El codigo es el siguiente, por favor si existen errores indicarmeslos, se los agradecere por siempre
Código PHP:
<?php
session_start
();
session_register('autenticado');
$autenticado=$_SESSION['autenticado'];
if (!isset(
$autenticado)) {
 
header('Location:index.php');
}
?>
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="JavaScript" type="text/javascript">

<!-- Begin

function retorna() {
         window.location='discos.php'
}
function fixElement(element, message) {
alert(message);
element.focus();
}
function isMailReady(form) {
var passed = false;
if (form.codpat.value.length != 12) {
fixElement(form.codpat, "Por favor, incluya Código Patrimonial de 12 dígitos");
}
else {
passed = true;
}
return passed;
}
// End -->
</SCRIPT>

</HEAD>
<!--color barra -->
<style> 
<!-- 
body { margin-top: 0; scrollbar-face-color: #e4ddcd; scrollbar-arrow-color: #7d7463; scrollbar-base-color: #f5fffa} 
--> 
</style>
<!--fin color barra-->
<body background="./bmp/fondo1.jpg" leftMargin="1" topMargin="0" marginheight="0" marginwidth="0" >
<?php
require ('sislib.php');
$grabar=$_POST['grabar'];
$eliminar=$_POST['eliminar'];
$retornar=$_POST['retornar'];
$nuevo=$_POST['nuevo'];
$codpat=$_POST['codpat'];
$numser=$_POST['numser'];
$fecact=$_POST['fecact'];

if (isset(
$grabar)) {
//    if (strlen(trim($codpat))==12){
        
validarFecha($fecact,'Fecha','neodis');
        
validarFecha($fecins,'Fecha','neodis');
        
$link=mysql_connect("localhost","root","xxx");
        
mysql_select_db('equipos',$link);
        
$strSql "select * from discos where id_patrimonial = '$codpat'";
        
$Resultado mysql_query($strSql ,$link);
        
$NumFilasEncontrados mysql_num_rows($Resultado);
        if(
$NumFilasEncontrados 1){
            
$fecact=fec_mysql($fecact);
            
$fecins=fec_mysql($fecins);
            
$strSql "INSERT INTO discos (id_patrimonial, numser, fecact)";
            
$strSql .= " VALUES ('$codpat', '$numser', '$fecact')";
            
$Resultado mysql_query($strSql);
            if (
mysql_errno()>0){
                
$dato=mysql_errno().':'.mysql_error().'<br>';
                
si_error($dato,"Select","neodis");
                                exit;
            }else{
                
$dato='discos';
               
si_guarda($dato);
               exit;
            }
        }else{
            
$dato=$codpat;
            
si_existe($dato);
            exit;
        }
        
mysql_free_result($Resultado);
        
mysql_close($link);
//    } else {
        //si_error($codpat,'Codigo','neodis');
//        exit;
//    }
}elseif (isset($eliminar)) {
    
$link=mysql_connect("localhost","root","xxx");
    
mysql_select_db('equipos',$link);
    
$strSql "DELETE FROM discos WHERE id_patrimonial = '$codpat'";
    
$Resultado=mysql_query($strSql,$link);
        if (
mysql_errno()>0){
            
$dato=mysql_errno().':'.mysql_error().'<br>';
            
si_error($dato,"Select","neodis");
            exit;
        }else{
            
si_elimina();
            exit;
        }
    
mysql_free_result($Resultado);
    
mysql_close($link);
}elseif (isset(
$retornar)) {
    
$dato='discos.php';
    
si_retorno($dato);
    exit;
}else {
?>
<form action='neodis.php' name='frmneodis' method='post' onSubmit = "return isMailReady(this);">
<TABLE  bgcolor="#eee8aa" align=center  border=0 cellPadding=0 cellSpacing=1 width="100%" >
    <TR align=left  height="20" ><TD  align=left bgcolor="#8b4513" colspan=11><FONT color="#eee8aa" face="Arial, Helvetica, sans-serif" size=2><strong>&nbsp;::&nbsp;Registro de Arreglos de Discos</strong></FONT></TD></TR>
    <tr>
        <TD  align=left   width="9%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>Código Patrimonial</strong></FONT></TD>
        <TD  align=center width="1%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>:</strong></FONT></TD>
        <TD  align=left   width="20%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><input type='text' name='codpat' >*</font></TD>
        <TD  align=center width="5%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>&nbsp;</strong></FONT></TD>
        <TD  align=left   width="9%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>Nº Serie</strong></FONT></TD>
        <TD  align=center width="1%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>:</strong></FONT></TD>
        <TD  align=left   width="20%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><input type='text' name='numser'></font></TD>
        <TD  align=center width="5%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>&nbsp;</strong></FONT></TD>
        <TD  align=left   width="9%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>Fecha Actualización</strong></FONT></TD>
        <TD  align=center width="1%"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><strong>:</strong></FONT></TD>
        <TD  align=left   width="20"><FONT color="#8b4513" face="Arial, Helvetica, sans-serif" size=2><input type='text' name='fecact'  value=<?php echo date('d/m/Y')?> ><br>dd/mm/yyyy</font></TD>
    </tr>
    <TR align=left  height="10" >
    <TD  align=left  colspan=11><hr></TD>
    </TR>
    <TR align=left  height="10" >
        <TD  align=left  colspan=11>

            <?php
              
if (isset($nuevo)) {
                
$dato='Elimina';
                                
$origen='discos.php';
                
activa_bott($dato,$origen);
              }
              
?>
        </TD>
    </TR>
    <TR align=left  height="180" >
        <TD  align=center  colspan=3>&nbsp;</TD>
    </TR>
    </TABLE>
<?php
}
?>
</font>
</BODY>
</HTML>

Última edición por Cluster; 26/03/2004 a las 09:45
  #4 (permalink)  
Antiguo 26/03/2004, 09:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. en principio se ve un pco de lio con la definición/uso de variables de sesión .. Estás mezclando los arrays superglobales $_SESSION con funciones como session_register() que no deben mezclarse .. o usas un método o el otro pero no ambos. El más seguro es usar sessiones por sus arrays superglobales.

también haces un redireccionamiento con header() OK .. pero no terminas el script (su ejecución) con exit; ya que el fin de ese condicional es determinar si el usuario está autentificado como para redireccionarlo a otra página si no lo está.


Código PHP:
<?php
session_start
();

if (!isset(
$_SESSION['autenticado'])) {
 
header('Location:index.php');
 exit;
}

 
// no sé si usaras $autenticado en el resto del código .. si no lo usas elimina esta línea
 
$autenticado=$_SESSION['autenticado'];

?>
Para el resto .. cuando terminas un proceso actualmente haces "exit;" pero lo que tendrías que hacer es redireccionar otra vez con:

header("Location: pagina.tal");
exit;

hacia donde tenga que ir .. en tu caso parece que el mismo script el que incluye X acciones a realizar . .unas de proceso puro en PHP y otras de mezcla de HTML(salida) + procesos PHP ...

Si haces esto .. los cierres de la BD y liberar memoria (mysql_free_result() .. etc) tines que hacerlos antes de tu exit .. sino no llega hasta allá el código como para ejecutarse según el flujo del programa que ahí "rompes"...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 22:31.