te dejo este codigo perfectamente funcionando.
ya que lo que quieres hacer es un login y un lougt.
aunque no veo como haces login , seria bueno que lo colocaras el codigo.
el proceso de validacion en mi caso personal,
pasa por tres etapas y una ultima 4:
1. recibir variables
2. registrar las variables de session
3. validar si se registraron las variales de session
si quieres ver un contenido se valida si estas logiado , de lo contrario se envia a una pagina de registro.
4. y ultimo lougout.
revisa en que paso esta la falla.
archivo para validar si se creo una session valida, validar.php
Código PHP:
<?php
if (!isset($_SESSION)) {
session_start();
}
// esta funcion debuelve un valor
// entero 0 para falso
// 1 para verdadero
function validar_user() {
if (isset($_SESSION['k_userName'])) {
return 1;
} else {
return 0;
}
}
/**
*Esta funcion identifica al usuario que ha
* iniciado session durante toda la aplica
*
* devuelve el nombre del usuario quien inicio
* session como un string
* @return string
*/
function nombre() {
if (isset($_SESSION['k_userName'])) {
return "Usted es:" . $_SESSION["k_userName"] . " ";
} else {
return "usted es: un visitante ";
}
}
?>
luego el codigo de un simple formulario para login, login.php
Código PHP:
<form method="post" action="registrarVariables.php">
<label for="txtUsername">Usuario:</label>
<input id="usuario" name="usuario" type="text"/>
<br>
<label for="txtName">Contraseña:</label>
<input id="password" name="password" type="password"/>
<br>
<input name="submit" type="submit" value="Registrar" />
</form>
aqui viene el primer paso recibir las variables
dos registrar las variables
Código PHP:
<?php
session_start();
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$nombre=$_POST['usuario'];
$pass= $_POST['password'];//
if($nombre=='carlos'){
// aqui registras la variable
$_SESSION['k_userName']=$nombre;
echo('<script>location.href="verDocumento.php"</script>');
}else{
echo('<script>location.href="verDocumento.php"</script>');
}
?>
tercero visualizar el contenido, pero no antes validando si hay una session registrada o valida
el archivo se llama verDocumento.php
Código PHP:
<?php
require 'validar.php';
?>
<?php
if (validar_user()) {
echo "usted es".nombre()."<br><br><br>";
?>
mostrar contenido [en tu caso es el boton de log out]
<a href="log.php"><button id="boto1" > salir</button></a>
<?php
} else {
?>
no mostrar contenido [en tu caso es el boton de registro]
<a href="login.php"><button id="boto1" > registrarse o login</button></a>
<?php } ?>
por ultimo salir , log.php
Código PHP:
<?php
session_start();
session_destroy();
?>
<a href="login.php"><button id="boto1" > registrarse o login</button></a>
este codigo funciona perfectamente , igualmente lo busque en internet.
analisalo y si tienes duda pregunta.
espero haberte ayudado.