Foros del Web » Programando para Internet » PHP »

COMO EVITAR que pulsen atras

Estas en el tema de COMO EVITAR que pulsen atras en el foro de PHP en Foros del Web. Tengo una web que los usuarios se validan con usuario y contraseña. Cuando se desconectan cierran la sesión, pero si se le da al botón ...
  #1 (permalink)  
Antiguo 09/07/2015, 14:31
 
Fecha de Ingreso: julio-2015
Ubicación: Peru
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta COMO EVITAR que pulsen atras

Tengo una web que los usuarios se validan con usuario y contraseña. Cuando se desconectan cierran la sesión, pero si se le da al botón atrás del navegador se puede entrar de nuevo en la sesión del otro usuario que ya había desconectado. Alguien sabe como se evita esto. POR FAVOR GRACIAS :)
  #2 (permalink)  
Antiguo 09/07/2015, 15:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: COMO EVITAR que pulsen atras

Asegúrate de eliminar cookies y variables de sesión. Por supuesto, sin ver tu código de validación de usuario y fin de sesión, no podemos saber lo que está pasando.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/07/2015, 20:44
 
Fecha de Ingreso: julio-2015
Ubicación: Peru
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Sonrisa Respuesta: COMO EVITAR que pulsen atras

Gracias por responder Triby

Este es el codigo de mi primer formulario el INICIO donde esta tambien la Validacion
Código PHP:
<?php
//Inicializar la sesion
session_start();
//Recibir los valores del formulario

if ($_POST)
{
$usuario=$_POST['txtUser'];
$clave=$_POST['txtPass'];

$Conexion mysql_connect("localhost""root","");
mysql_select_db("bd_uni"$Conexion);

$Consulta 
"SELECT p.Nombre,p.aPaterno,p.aMaterno
 FROM persona p,usuario u
 WHERE p.DNI= u.DNI and contrasena='$clave' AND nombreusuario='$usuario'"
;
 
 
$Resultado mysql_query($Consulta$Conexion);
 
$Nro mysql_num_rows($Resultado);
 
if (
$Nro == 1)
{
 
$Nombre mysql_result($Resultado,0,"Nombre");
 
$Paterno mysql_result($Resultado,0,"aPaterno");
 
$Materno mysql_result($Resultado,0,"aMaterno");
 
 
$_SESSION['Nombre']=$Nombre;
 
$_SESSION['aPaterno']=$Paterno;
 
$_SESSION['aMaterno']=$Materno;
   
header('location:menu_prueba.php');
 }else{
     echo 
"<script>  alert('USUARIO INCORRECTO  DIGITE OTRA VEZ');</script>";
     
//echo "<CENTER><COLOR:RED>¡USUARIO INCORRECTO !</CENTER>";
 
}
}
?>

<form action="" method="post">
        <fieldset>
          <legend></legend>
          <p>INICIAR SESION</p>
          <p>
            <label for="textfield"></label>
            <input type="text" name="txtUser" id="textfield">
          </p>
          <p>
            <input type="password" name="txtPass" id="textfield2">
          </p>
          <p>
            <input type="submit" name="go" id="go" value="go" />
          </p>
        </fieldset>
      </form>

Este es el 2do donde esta lo que imprimira

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

?>
Bienvenido :
<?php echo $_SESSION['Nombre']." ".$_SESSION['aPaterno']." ".$_SESSION['aMaterno']; ?>
<a href="menu.php" target="_parent">Inicio</a> - 
<a href="cerrar_prueba.php" target="_parent">Salir</a></td>
Este es el 3ero El de cerrar sesion

Código PHP:
<?php 
 
//Crear sesión
 
session_start();
 
//Vaciar sesión
 
$_SESSION = array();
 
//Destruir Sesión
 
session_destroy();
 
//Redireccionar a login.php
 
header("location:inicio_prueba.php");
?>

Cuando doy boton atras me manda este error

Bienvenido :
Notice: Undefined index: Nombre in C:\xampp\htdocs\uni\menu_prueba.php on line 7

Notice: Undefined index: aPaterno in C:\xampp\htdocs\uni\menu_prueba.php on line 7

Notice: Undefined index: aMaterno in C:\xampp\htdocs\uni\menu_prueba.php on line 7
/ Inicio - Salir


Ayudame por favor :(
  #4 (permalink)  
Antiguo 09/07/2015, 21:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: COMO EVITAR que pulsen atras

No importa cuánta urgencia tengas, si duplicas temas o mensajes va a ser más difícil que alguien te ayude con la solución.

Código PHP:
Ver original
  1.  
  2. // Una comprobación sencilla antes de mostrar la página
  3. if(!isset($_SESSION['Nombre'])) {
  4.     // No ha iniciado sesión, rediriges al formulario
  5.     header('Location: login.php');
  6.     // Finalizas la ejecución del script para evitarte problemas
  7.     exit;
  8. }
  9.  
  10. // Aquí muestras el contenido apropiado para usuarios con sesión iniciada
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 09/07/2015, 22:00
 
Fecha de Ingreso: julio-2015
Mensajes: 2
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: COMO EVITAR que pulsen atras

Básicamente deberías validar en el segundo script que si existe la session que muestre el mensaje de bienvenida, sino que redireccione al scrript del login. Creo que sería algo así:


Código PHP:
Ver original
  1. <?php  
  2. if (isset($_SESSION['Nombre']) && $_SESSION['aPaterno'] && $_SESSION['aMaterno']) {
  3.     echo "Bienvenido : ".$_SESSION['Nombre']." ".$_SESSION['aPaterno']." ".$_SESSION['aMaterno'];  
  4. }
  5. else {
  6.    //Redireccionar a login.php
  7.    header("location:inicio_prueba.php");
  8. }
  9.  
  10. <a href="menu.php" target="_parent">Inicio</a> -  
  11. <a href="cerrar_prueba.php" target="_parent">Salir</a></td>


El error que tienes es que efectivamente no existen esos índices dentro de las sessiones de php, recuerda siempre validar correctamente las variables que cambian o dejan de existir después de un tiempo.

Espero te haya sido de utilidad.

Etiquetas: ayuda-php, cerrar, dejar, formulario, mysql, select, sesión, sesiones_en_php
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 10:54.