已弃用的session_is_registered的替代方法

时间:2011-03-12 23:55:39

标签: php

session_start();
if (!session_is_registered(user)) {
    header("Location: login.php");
    die();
}

由于session_is_registered()已被弃用,这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:22)

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

答案 1 :(得分:1)

isset()不会一直做你想做的事。如果'user'是假的(0,false,null,空字符串),它将失败。尽管php.net说的是,array_key_exists()将匹配session_is_registered的真值表:

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 */
}

答案 2 :(得分:0)

在login.php页面中,如果您的用户名和密码匹配,那么它将通过

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

在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");
}

答案 3 :(得分:0)

if (empty($_SESSION['user'])){
    // session user does not exist
}