5

我正在一个网站上工作,索引页面检查用户是否使用这段代码登录:

if (!$_SESSION['login'] && $_SESSION['login'] == "") {
include_once($_SERVER['DOCUMENT_ROOT'] . "/login/");
} elseif ($_SESSION['login'] == 1) {
include_once($_SERVER['DOCUMENT_ROOT'] . "/main/");
}

但我希望它看起来更干净,然后我开始想知道是否有可能用一个函数来实现这样的东西:

checklogin($_SESSION['login']);

我对函数没有太多经验,所以如果我的问题看起来很愚蠢,我很抱歉,所以提前谢谢。

4

5 回答 5

6

尝试这个

if(check_login()) {
  echo 'You are in!';
} else {
    header('Location: login.php');
    exit;
}

function check_login () {
    if(isset($_SESSION['login'] && $_SESSION['login'] != '') {
       return true;
    } else {
       false;
    }
}
于 2013-08-30T15:55:44.317 回答
3

只需使用empty

if ( empty($_SESSION['login']) ) {
    include_once($_SERVER['DOCUMENT_ROOT'] . "/login/");
} else {
    include_once($_SERVER['DOCUMENT_ROOT'] . "/main/");
}

或者浓缩它:

include_once $_SERVER['DOCUMENT_ROOT'].(empty($_SESSION['login']) ? "/login/" : "/main/");
于 2013-08-30T15:57:36.860 回答
2

有你需要的:

function userCheck()
{
    return (isSet($_SESSION['login']) && $_SESSION['login']);
}

if(userCheck())
    include_once($_SERVER['DOCUMENT_ROOT'] . "/main/");
else
    include_once($_SERVER['DOCUMENT_ROOT'] . "/login/");
于 2013-08-30T15:59:50.070 回答
1

不管你的方法是否有意义,我认为这会达到你的预期:

function checklogin($login){
      if (!$login && $login == "") {
          include_once($_SERVER['DOCUMENT_ROOT'] . "/path/");
      }
}


// **** call to the function

       checklogin($_SESSION['login']);  

// ****
于 2013-08-30T15:59:57.570 回答
0

您可以使用此功能:

function checklogin() {
  return (isset($_SESSION['login'])) ? true : false;
}

然后在您要检查用户是否登录的页面上,您可以:

if(checklogin() === true){
  //here you would put what you want to do if the user is logged in
} else {
  //this would be executed if user isn't logged in
  header('Location: protected.php');
  exit();
  //the above would redirect the user
}
于 2013-08-30T16:04:09.830 回答