Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Verificar si existe sesión.

Estas en el tema de Verificar si existe sesión. en el foro de PHP en Foros del Web. Hola amigos, tengo un pequeño problema: Tengo una pagina donde en el header quiero poner dos cosas, si tiene una sesión iniciada mostrar un enlace ...
  #1 (permalink)  
Antiguo 01/01/2014, 21:20
Avatar de harunnpk  
Fecha de Ingreso: diciembre-2013
Mensajes: 9
Antigüedad: 10 años, 10 meses
Puntos: 1
Pregunta Verificar si existe sesión.

Hola amigos, tengo un pequeño problema:
Tengo una pagina donde en el header quiero poner dos cosas, si tiene una sesión iniciada mostrar un enlace para cerrar la sesión, pero si no tiene sesión en vez del enlace anterior poner uno que inicie la sesión, este es mi código. Me da problemas ya que este o no este la sesión creada solo me muestra para iniciar sesión. Gracias.
Código:
<? 
    if ($_SESSION['id'] != true){
        echo "<a href='acceso.php'> Iniciar Sesión</a>";
    }
    else
        echo "<a href='destroy.php'> Cerrar Sesión</a>";
    ?>
  #2 (permalink)  
Antiguo 02/01/2014, 00:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Verificar si existe sesión.

Lo primero es evitar la forma corta <? y usar <?php, después, debes asegurarte de haber iniciado el manejo de sesiones con session_start(); y, finalmente, si no existe $_SESSION['id'] seguramente obtendrás un mensaje de advertencia (warning) al intentar hacer la comparación, pero es difícil saberlo con ese poco código.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 02/01/2014, 03:24
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 18
Respuesta: Verificar si existe sesión.

Podrías usar la función isset() para comprobar si existe la variable.


<?php

if (!isset($_SESSION['id']) {
echo "<a href='acceso.php'> Iniciar Sesión</a>";
}
else
echo "<a href='destroy.php'> Cerrar Sesión</a>";
?>
  #4 (permalink)  
Antiguo 02/01/2014, 06:58
Avatar de moriorGames  
Fecha de Ingreso: diciembre-2013
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Verificar si existe sesión.

Exactamente como el compañero sintel_1 te ha escrito, su propuesta es la mejor solución ya que la función isset (ha sido definido) verifica si una variable, array, etc. han sido definidos en tu código y, además, evita que salten errores tipo "NOTICE".

Si ya lo que quieres es terminar de bordar el script del compañero puedes hacer un isset, seguido de un empty para asegurarte que, en caso de que la variable haya sido definida, que no esté vacía. Ejemplo:

<?php
if ( isset( $_SESSION['usuario'] ) && !empty( $_SESSION['usuario'] ) ) {
// Variable definida y no vacia
} else {
// Variable no definida o vacia
}
__________________
Mi juego de estrategia medieval si lo entras hazme llegar tu opinión por favor, siempre la tengo en cuenta.
  #5 (permalink)  
Antiguo 02/01/2014, 13:46
Avatar de harunnpk  
Fecha de Ingreso: diciembre-2013
Mensajes: 9
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Verificar si existe sesión.

Muchas gracias por sus respuestas, ahora lo entiendo más. :D

Etiquetas: verificar
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 22:10.