<?php
session_start();
/*include ('navegacion/funciones_navega.php');*/
include ('funciones.php');
if (isset ($_POST['cerrar_sesion']))
{
unset($_SESSION['usuario']);
session_destroy();
$mensaje="Salio de la Sesión..! ".var_dump($_SESSION);
$url="http://localhost/odontologo/index.php?mensaje=$mensaje&error=1";
presentar_mensaje_popup($url);
}
session_unset()
session_destroy();
$mensaje="Salio de la Sesión..! ".var_dump($_SESSION);
$url="http://localhost/odontologo/index.php?mensaje=$mensaje&error=1";
presentar_mensaje_popup($url);
Proba con estas! no pongas el unset($_SESSION['usuario']);
PHP:session_unset() session_destroy(); $mensaje="Salio de la Sesión..! ".var_dump($_SESSION); $url="http://localhost/odontologo/index.php?mensaje=$mensaje&error=1"; presentar_mensaje_popup($url);
unset($_SESSION['usuario']);
Muchas Gracias Victor por responder a mi pregunta,
Ya lo hicePHP:unset($_SESSION['usuario']);
Sí cierra la sesión, pero mi problema de seguridad es cuando el usuario presiona el botón "hacia atras" del navegador, el navegador le presenta los datos que tenia el usuario una pantalla antes de cerrar la sesión.
esta información puede ser sensible (delicada) quisiera la forma de eliminar el historial de todas las pantallas donde el usuario transito.
Ej: en Facebook, cuando cierras sesión y presionas "hacia atras" en el botón del navegador, automáticamente te sale pantalla de inicio de sesión de Facebook.
Muchas gracias por responder.!
Dios te bendiga
Es muy raro que siga mostrando datos despues de hacer eso, quizas muestra datos pero es xq no se actualizo la pagina que esta detras del popup que abris, si das a actualizar siguen viendose?
¿como debo validar, para que las páginas se muestren siempre y cuando este iniciada una sesion logeada?
muchas gracias por sus respuestas..!
if(!isset($_SESSION['usuario']))
{
header("location:/url/");
}
Simplemente evita mandar cabeceras 304, así el navegador no cacheará la página, ni siquiera al volver atrás en el historial.
Claro, es eso a lo que me refería, no quieres enviar cabeceras 304 donde se muestren datos sensibles.eso es un serio problema, si no se cachea la página tendrás carga extra innecesaria en el navegador
lo mejor que puedes hacer es como dice shadowhck cuando estés en una sección donde cargue información sensible, simplemente evitas que la cachee.
en realidad mejor sería que la información sensible no esté en el html directamente, sino que sea solicitada luego de cargar la página por javascript, la información debería ser devuelta solo si está logueado
saludos!
<?php
session_start();
include("funciones.php");
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Servicios de Odontologos</title>
<link href="css/estilos.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="barra-menu-inicio">
</div>
<?php
if (isset($_SESSION['usuario']))
header("Location: http://localhost/odontologo/entorno_usuario.php");
else
{
?>
<div class="ingreso_datos_pagina_inicio">
<form name="ingreso" method="post" action="">
<h1>Iniciar Sesión:</h1>
Para ingresar a tu perfil debes iniciar Sesión.
<hr>
<div align="center">
Usuario:<input name="c_usuario" type="text"
placeholder="Ingrese su Identificación" class="campo-datos">
Contraseña:<input name="c_passw" type="password"
placeholder="Favor escriba su Contraseña" class="campo-datos">
<fieldset >
Paciente<input name="tipo_usuario" type="radio" value="Paciente">Odontólogo<input name="tipo_usuario" type="radio" value="Odontologo" required>
<input class="botones-pagina-inicio" name="iniciar-sesion" type="submit" value="iniciar sesión">
</fieldset>
</div>
<input name="clase_formulario" type="hidden" value="mi">
<br>
</form>
<form name="ingreso" method="post" action="perfil-persona.php">
<h2>Registrarse</h2>
Si no esta registrado aún, hazlo ahora..!<br/>
<div align="center">
<fieldset >
Paciente<input name="tipo-usuario" type="radio" value="Paciente">Odontólogo<input name="tipo-usuario" type="radio" value="Odontologo" required>
<input class="botones-pagina-inicio" name="b_registrarse" type="submit" value="registrarse" required>
</fieldset>
</div>
</form>
</div>
<?php }?>
<?php
if ($_GET['error']==1)
{
$mensaje=$_GET['mensaje'];
echo "<script language='javascript1.5'>
alert ('$mensaje'); location.href='http://localhost/odontologo/index.php';
</script>";
}
?>
<?php
if (isset($_POST['iniciar-sesion']))
{
$usuario=trim(strip_tags($_POST['c_usuario']));
$passw=trim(strip_tags($_POST['c_passw']));
$tipo_usuario=trim(strip_tags($_POST['tipo_usuario']));
$resultado_busqueda=buscar_usuario($tipo_usuario,$usuario,$passw);
if ($resultado_busqueda->num_rows==0)
echo "
<script type='text/javascript'>
alert('Usuario no encontrado');
</script>
";
}
?>
</body>
</html>
<?php
session_start();
include ('funciones.php');
if (isset ($_POST['cerrar_sesion']))
{
session_unset();
$mensaje="Salio de la Sesión..! ";
$url="http://localhost/odontologo/index.php?mensaje=$mensaje&error=1";
presentar_mensaje_popup($url);
}
if (isset($_SESSION['usuario']))
{
$persona=$_SESSION['tipo_usuario'];
$usuario=$_SESSION['usuario'];
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $usuario;?> | Perfil</title>
<link href="css/estilos.css" rel="stylesheet" type="text/css">
<meta name="viewport" content=" width=device-width; initial-scale=1.0">
<link href="css/colores.css" rel="stylesheet" type="text/css">
<link href="css/base.css" rel="stylesheet" type="text/css">
<link href="css/grande.css" rel="stylesheet" type="text/css" media="screen and(min-width: 981px)">
<link href="css/medino.css" rel="stylesheet" type="text/css"media="screen and(min-width: 481px) and (max-width: 980px)">
<link href="css/mini.css" rel="stylesheet" type="text/css"media="screen and(max-width: 480px)">
</head>
<body>
<div class="barra">
<div id="titulo">
Entorno de <?php echo $usuario;?>
<img src="http://localhost/odontologo/imagenes/<?php echo $persona;?>.png" width="50" height="50">
</div>
<div id="titulo" style="text-align:right;">
<strong>Odontología de Guayaquil</strong>
</div>
<div id="salir">
<form method="post" action="cerrar_sesion.php">
<input name="cerrar_sesion" type="submit" value="Salir" title="Cerrar Sesión" class="botones-entorno-usuario">
</form>
</div>
</div>
</body>
</html>
<?php
echo "
<script type='text/javascript'>
alert('".$_SESSION['usuario'].", Haz iniciado la Sesión');
</script>
";
}
else
{
$mensaje="Favor inicie la Sesion..!";
$url="http://localhost/odontologo/index.php?mensaje=$mensaje&error=1";
presentar_mensaje_popup($url);
}
?>
Claro, es eso a lo que me refería, no quieres enviar cabeceras 304 donde se muestren datos sensibles.
En una landing o páginas estáticas claro que lo mejor es enviarlas, y en los archivos estáticos también hace falta una "expires"...
Lo de cargar la información asíncronamente puede tener sus ventajas, pero por otra parte eso significaría que un usuario sin javascript no podría acceder a ella.
eso es cierto, pero hay que tener en cuenta que encontrar hoy en día a un usuario sin javascript (teniendo como base que hasta los navegadores de los móviles tienen javascript) es muy raro, yo tengo como política no dar soporte a "obsoletos" cosas como el internet explorer 6, o gente con un navegador sin javascript. (es mi opinión personal), pero en general la industria tiende a establecer unos minimos prerequisitos para el desarrollo (como por ejemplo tener memoria suficiente para correr una app, etc.)
saludos!
En cierto modo te doy la razón (si soportaras a IE6 sólo demostrarías masokismo, y casi que a IE7 te digo lo mismo), pero para mí las partes críticas de la web deberían funcionar sin javascript:eso es cierto, pero hay que tener en cuenta que encontrar hoy en día a un usuario sin javascript (teniendo como base que hasta los navegadores de los móviles tienen javascript) es muy raro, yo tengo como política no dar soporte a "obsoletos" cosas como el internet explorer 6, o gente con un navegador sin javascript. (es mi opinión personal), pero en general la industria tiende a establecer unos minimos prerequisitos para el desarrollo (como por ejemplo tener memoria suficiente para correr una app, etc.)
saludos!
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?