Veamos la página donde se implementa la clase
Web:
Código PHP:
Ver original<?php
//Inicio de sesión.
...
class Web{
...
const USUARIO_ANONIMO = 0;
const USUARIO_REGISTRADO = 1;
...
protected $acceso;
...
public function iniciar_sesion($usuario, $clave){
$mysql = new mysqli($this->leer_bdweb_servidor(), $this->leer_bdweb_usuario(), $this->leer_bdweb_clave(), $this->leer_bdweb_nombre());
if($mysql->connect_error == NO_HAY_ERROR){
$consulta = "SELECT *
FROM `Usuarios`
WHERE `nombre` = '$usuario' AND `clave` = '$clave'";
$resultado = $mysql->query($consulta);
if ($resultado->num_rows > 0){
$_SESSION['usuario'] = $usuario;
$this->escribir_acceso($this::USUARIO_REGISTRADO);
$resultado->free();
}else{
$this->terminar_sesion();
}
}else{
$_SESSION['usuario'] = 'ERR'.$mysql->connect_errno;
$this->escribir_acceso($this::USUARIO_ANONIMO);
echo $mysql->connect_error;
echo "<br />";
}
$mysql->close();
}else{
$this->terminar_sesion();
}
}
public function terminar_sesion(){
$_SESSION['usuario'] = 'Anónimo';
$this->escribir_acceso($this::USUARIO_ANONIMO);
}
...
public function escribir_menu_superior(){
if(isset($_SESSION['usuario'])){ $usuario = $_SESSION['usuario'];
}else{
$usuario = 'Anónimo';
}
echo " <!-- Menú superior -->\n";
echo " <div class='menu' id='menu'>\n";
echo " <a href='/Biblioteca.php'>Biblioteca </a>|\n";
echo " <a href='/Sindesmoteca.php'>Sindesmoteca </a>|\n";
echo " <a href='/galeria/Galeria.php'>Galería </a>|\n";
echo " <a href='/Historial.php'>Historial </a>|\n";
echo " <a href='/Videoteca.php'>Videoteca </a>|\n";
echo " <a href='/Buzon.php'>Buzón </a>|\n";
echo " <a href='/Fonoteca.php'>Fonoteca </a>|\n";
echo " <a href='/recepcion.php'>Recepción </a>|\n";
echo " <a href=''>".$usuario."</a>\n";
echo " </div>\n";
echo " <!-- Menú superior (fin) -->\n";
echo " \n";
}
...
}
?>
--paréntesis--
La página
usuario.php, que no es empleada en este caso, inicia también la sesión:
--fin paréntesis--
(Disculpad que haya sido tan largo, pero he intentado introducir todos los posibles factores)
¿Alguien puede arrojarme algo de luz para adivinar la causa? Gracias de antemano.