2011-03-12 7 views
13
session_start(); 
if (!session_is_registered(user)) { 
    header("Location: login.php"); 
    die(); 
} 

¿Cuál es la forma correcta de hacerlo desde que session_is_registered() está en desuso?Alternativa para la sesión obsoleta_registrada

+1

Sería de gran ayuda si "ellos" se puso un aviso en el manual de PHP como a la función de sustitución "recomendado" cuando algo es obsoleto. – salonMonsters

Respuesta

22

uso if (isset($_SESSION['user'])){}

+0

haría eso y pondría un encabezado else ("Ubicación: index.php"); die(); o morir(); no es necesario? – Kyle

+1

salida; siempre se debe usar después de redirigir con el encabezado(). morir probablemente también funcione. – Galen

0

En la página login.php, si su nombre de usuario y contraseña se corresponde entonces sería registrar al usuario por

session_register("y"); //where y register the user 
header("location:user.php&name=$y"); 

En la página user.php

session_start(); 
if(!isset($_SESSION['y'])) // if the user is not the same user that logged in then 
{       // it redirects to the login page 
    header("location:login.php"); 
} 
0
if (empty($_SESSION['user'])){ 
    // session user does not exist 
} 
1

isset() no hará todo lo que quiera todo el tiempo. Fallará si 'usuario' es falso (0, falso, nulo, cadena vacía). array_key_exists() coincidirá con la tabla de verdad de session_is_registered, a pesar de lo php.net dice:

if (!array_key_exists('user', $_SESSION)){ 
    /* 'user' is in the session */ 
} 

//in other words... 
if (array_key_exists('user', $_SESSION) === session_is_registered('user')) { 
    /* This is always executed */ 
} 
Cuestiones relacionadas