Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/05/2013, 15:54
Avatar de rocha7778
rocha7778
 
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Problema con sesión

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&ntilde;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.