Foros del Web » Programando para Internet » PHP »

cerrar sesion php

Estas en el tema de cerrar sesion php en el foro de PHP en Foros del Web. Hola quisiera saber como puedo cerrar una sesion con php la cuestion es esta en una pagina con una sesion creada y creo un vinculo ...
  #1 (permalink)  
Antiguo 10/05/2013, 17:00
Avatar de carlosloaiza21  
Fecha de Ingreso: julio-2009
Mensajes: 175
Antigüedad: 10 años, 4 meses
Puntos: 0
Exclamación cerrar sesion php

Hola quisiera saber como puedo cerrar una sesion con php la cuestion es esta en una pagina con una sesion creada y creo un vinculo a una pagina que contiene el siguiente codigo:

Código:
session_start();
session_destroy();
header("location: ../");
ahora segun yo se destruye la session pero si le doy al navegador hacia atras la pagina sigue accediendo como si no se serrara la sesion el codigo es el siguiente.

Pagina de logueo:

Código:
<html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" type="text/css" href="css/estilos.css">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
     	<script src="http://cloud.github.com/downloads/franz1628/validacionKeyCampo/validCampoFranz.js"></script>
		<script src="js/script.js"></script>
		<title>.::Administrador::.</title>
	</head>
	<body>
		<div id="Acceso">
			<form action="acceso.php" method="post" id="acceder" onsubmit="return campos()">
				<table>
				<tr><th colspan="2">ACCESO</th></tr>
				<tr><td>USUARIO: </td><td><input type="text" name="usuario" class="letras" id="usuario" placeholder="Usuario"></td></tr>
				<tr><td>CONTRASEÑA: </td><td><input type="password" name="pass" class="letras" id="pass" placeholder="Password"></td></tr>
				<tr align="center" valign="middle"><td colspan="2"><input type="submit" class="letras" value="Accesar" ></td></tr>
				</table>
			</form>
		</div>
	</body>
</html>
La pagina que valida el logueo a la bd:

Código:
session_start();
if(isset($_SESSION['LOG']))
{
	if($_SESSION['LOG']=="LOGUEADO")
	{
		require_once 'includes/contenido.php';		
	}
	else
	{
		echo "ERROR";	
	}
}
else
{
	require_once 'includes/conexion.php';
	$usuario=mysqli_query($link,"Select * from usuarios where usuario='$_POST[usuario]' and password='$_POST[pass]'")or die(mysql_error($link));
	if(mysqli_num_rows($usuario)<1)
		{
			$_SESSION['LOG']="NO";
			echo "Error";
		}
		else
		{
		$_SESSION['LOG']="LOGUEADO";
		require_once 'includes/contenido.php';
		}
}
La pagina que se llama si el logueo es correcto:

Código:
<html>
	<head>
		<title>.::ADMINISTRADOR::.</title>
		<meta charset="utf-8">
		<link rel="stylesheet" type="text/css" href="css/acceso.css">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
     	<script src="http://cloud.github.com/downloads/franz1628/validacionKeyCampo/validCampoFranz.js"></script>
		<script src="js/script.js"></script>
	</head>
	<body>
		<div id="Contenedor">
			<header>
			</header>
			<nav>
				<?php echo $_SESSION['LOG']; ?>
				<ul>
					<li><a href="#" id="alta">Alta</a></li>
					<li><a href="#" id="Baja">Baja</a></li>
					<li><a href="#" id="Consultar">Consultar</a></li>
					<li><a href="#" id="Editar">Editar</a></li>
					<li><a href="#" id="Salir">Salir</a></li>
				</ul>
			</nav>
			<article>
				hol
			</article>
		</div>
	</body>
</html>
al dar clic en el vinculo salir se envia a este archivo:

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

header("location: ../");
hasta aqui todo bien me manda a la pagina de logueo pero si le doy al navegador hacia atras me envia el mensaje: Confirmar reenvío del formulario y si le doy actualizar o confirmar me deja accesar como si no hubiera cerrado la sesion :(

AYUDA POR FAVOR
__________________
La vida de un hombre es mas interesante si ha fracasado, por que eso quiere decir que ha intentado superarse
  #2 (permalink)  
Antiguo 10/05/2013, 19:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.978
Antigüedad: 11 años, 3 meses
Puntos: 2191
Respuesta: cerrar sesion php

No veo que tengas alguna validación para saber si el usuario tiene sesión o no, simplemente muestras el contenido. Te serviría poner al principio algo como esto:

Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['tu-variable-de-sesión'])) {
  3.     // Redireccionas a la página de acceso
  4.     header('Location: login.php');
  5.     // Finalizas la ejecución del script
  6.     exit;
  7. }

Mmmm... la página del administrador aparece con el include?

De ser así, entonces tal vez el navegador guarda en caché la página y, si recargas, entonces se verá el contenido correcto para usuario sin sesión.

Entonces, te recomiendo esta búsqueda: https://www.google.com.mx/#hl=es&scl...w=1680&bih=889
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/05/2013, 10:05
Avatar de carlosloaiza21  
Fecha de Ingreso: julio-2009
Mensajes: 175
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: cerrar sesion php

Hola si efectivamente aparece con ek include pero por favor ayuda no logro hacer lo que necesito entra el usuario despues cuando le doy en salir regresa al login pero si el usuario le da la flecha del navegador se abre la pagina que dice confirmar reenvio del formulario y en ese momento le doy reintentar y abre la pagina nuevamente es decir no cierra la sesion por favor ayuda ya intente los headers de para no permitir cahe y las sesiones :( por favor alguien ayuda :(
__________________
La vida de un hombre es mas interesante si ha fracasado, por que eso quiere decir que ha intentado superarse

Etiquetas: cerrar, formulario, html, select, sql, usuarios
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 18:20.