Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2013, 14:38
Avatar de Jogabba
Jogabba
 
Fecha de Ingreso: octubre-2012
Mensajes: 18
Antigüedad: 11 años, 6 meses
Puntos: 0
Problema con sesión

Buenas, otra vez me vuelven a surgir problemas sin razón aparente.

Esta vez, el problema es de sesiones. Tengo diferentes páginas en la que arriba te salen dos botones (conectarse o registrarse) en caso de que no hayas hecho login y uno de desconectarse en el caso de que sí te hayas identificado.

En mi caso, todo va bien hasta que intentas hacer login. Entonces, puede pasar que la página te identifique o no lo haga (es decir, que te siga mostrando los botones de entrar y registrarse). Lo raro es que, aunque la página no te haya identificado, puede darse el caso de que saltes a otra página y esta sí te identifique sin pasar por otro login (y te muestre el botón de desconectarse).

Y aún más raro: el botón de desconectarse es completamente inútil. Pese a que la página te informa de que la sesión ha sido destruida con éxito, puede ser que te siga identificando.


Para más información, diré que todas las páginas están hechas a partir de la misma estructura, que he escrito previamente.
Todas cuentan con esta cabecera:

Cita:
<?php include ("sesion.php")?>
<!DOCTYPE html>
<html>
<?php include ("head.php")?>
<body>
<?php include ("header.php")?>
La página sesion.php es la que identifica si estás conectado o no y te muestra unos botones u otros. Su código es este:

Cita:
<?php session_start();
$toplinks = "";
if (isset($_SESSION['id'])) {
$userid = $_SESSION['id'];
$username = $_SESSION['nick'];
$toplinks = '<span id="textohead">Bienvenido,'. $username.'.</span>
<a href="logout.php"><button id="boto1" > Desconectarse</button></a>';
} else {
$toplinks = '<button id="boto1"><a href="registro.php">Registra\'t</a></button><button id="boto1"><a href="login.php">Entra</a></button>';
}
?>
En cuanto al logout inservible, su código es este:

Cita:
<?php
session_start();

session_destroy();
if(!session_is_registered('id')){
$msg = "You are now logged out";
} else {
$msg = "<h2>could not log you out</h2>";
}
?>
<html>
<body>

</body>
</html>
¿Alguna idea de qué es lo que ocurre? Gracias de antemano.