Foros del Web » Programando para Internet » PHP »

Una de sesiones

Estas en el tema de Una de sesiones en el foro de PHP en Foros del Web. estoy trabajando la administración de mi sitio con sesiones y lo que me pasa es que cuando doy atras en mi navegador y este va ...
  #1 (permalink)  
Antiguo 07/04/2004, 07:16
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Una de sesiones

estoy trabajando la administración de mi sitio con sesiones y lo que me pasa es que cuando doy atras en mi navegador y este va a la pagina que me chequea que los datos del usuario estén en la BD me pone esto:
Cita:
Warning: Page has Expired The page you requested was created using information you submitted in a form. This page is no longer available. As a security precaution, Internet Explorer does not automatically resubmit your information for you.

To resubmit your information and view this Web page, click the Refresh button.
pero si le doy F5 me actualiza y me continua con la entrada al sistema de administración, lo cual pienso que es una vulnerabilidad, pero no se como solucionarla. El código de la página que me chequea es este:
Código PHP:
 <?php
 
/*******************************************************************************************************************
 Sitio Web del Departamento de Marxismo
 Universidad de las Ciencias Informáticas
 Programación y Diseño: Reynier Pérez Mira ([email protected])
 Bases de Datos: Leonel Salazar Videaux ([email protected])
 Animación: Karel Pérez Ramírez ([email protected])
 *******************************************************************************************************************/
 
require("functions.php");
 
server();
 
nocache();
 
$pass md5($_POST['passwd']);
 
$query mysql_query("SELECT * FROM usuario WHERE login='".$_POST['user']."' AND passwdenc='".$pass."' AND activo=1");
 
$resultado mysql_fetch_array($query);
 if (isset(
$user) && ($user == $resultado['login']) && isset($passwd) && ($pass==$resultado['passwdenc'])){
    
session_start();
    
$_SESSION['adminlogin'] = md5($user);
    
$_SESSION['adminpasswd'] = md5($passwd);
 if(
$resultado['session']==""){
     
$sess session_id();
     
mysql_query("UPDATE usuario SET session='".$sess."' WHERE login='".$_POST['user']."' AND passwdenc='".$pass."' AND activo=1");
 }
  if(
$resultado['tipo']=="0"){
      
redirect("Departamento de Marxismo","1","indexadmin.php?accion=entrar&tipo=0&ses=".$resultado['session']."","Entrando al Sistema de Administración ...<br>Espere unos segundos para ser redireccionado");
  }elseif(
$resultado['tipo']=="1"){
      
redirect("Departamento de Marxismo","1","indexadmin.php?accion=entrar&tipo=1&ses=".$resultado['session']."","Entrando al Sistema de Administración ...<br>Espere unos segundos para ser redireccionado");
  }elseif(
$resultado['tipo']=="2"){
      
redirect("Departamento de Marxismo","1","indexadmin.php?accion=entrar&tipo=2&ses=".$resultado['session']."","Entrando al Sistema de Administración ...<br>Espere unos segundos para ser redireccionado");
  }elseif(
$resultado['tipo']=="3"){
      
redirect("Departamento de Marxismo","1","indexadmin.php?accion=entrar&tipo=3&ses=".$resultado['session']."","Entrando al Sistema de Administración ...<br>Espere unos segundos para ser redireccionado");
  }elseif(
$resultado['tipo']=="4"){
      
redirect("Departamento de Marxismo","1","indexadmin.php?accion=entrar&tipo=4&ses=".$resultado['session']."","Entrando al Sistema de Administración ...<br>Espere unos segundos para ser redireccionado");
  }    
 }else{
     
redirect("Departamento de Marxismo","3","administrador.php?accion=entrar&error=errordatos","No está autorizado a entrar a esta página.<br>Por favor espere unos segundos.");
 }
?>
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 07/04/2004, 07:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Cual es el codigo de redirect()? Si es un header("Location") no deberia dar ese mensaje, ya que esa URL no estaria en el historial (no podrias llegar dando para atras). Si es una redireccion javascript/HTML, ese es el problema. Si genera salida, el action del form si queda en el historial. El navegador recuerda la peticion POST y la vuelve a enviar.

Asi que tu estructura deberia ser algo como:
[PHP]
function redirect(parametros) {
header("Location: mensaje.php?".parametros);
exit;
}
[/PHP
y en mensaje.php mostrarias el mensaje y realizarias la redireccion javascript/HTML.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/04/2004, 07:52
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Es este

El código de mi redirect es este:
Código PHP:
function redirect($titulo,$time,$url,$texto){
echo 
"<html><head><title>".$titulo."</title><meta http-equiv='Refresh' Content='".$time." ;url=".$url."'>
   </head><script language=JavaScript src=includes/mx.js></script>
   <link href=includes/mx.css rel=stylesheet type=text/css>
   <body  bgcolor=#BABDC2><div align=center><span class=txt>"
.$texto."</span></div></body></html>";

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 07/04/2004, 08:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te dió la solución Josemi ..

Para completar el sistema y ya que usas mensajes personalizados para indicar la acción que vas a realizar .. ("redireccionando a tal sitio") .. revisa este mensaje:

http://www.forosdelweb.com/s/msg193914.html

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 17:19.