PHP检查用户是否使用函数登录
我在一个网站上工作,索引页检查用户是否使用以下代码登录:PHP检查用户是否使用函数登录,php,function,authentication,Php,Function,Authentication,我在一个网站上工作,索引页检查用户是否使用以下代码登录: if (!$_SESSION['login'] && $_SESSION['login'] == "") { include_once($_SERVER['DOCUMENT_ROOT'] . "/login/"); } elseif ($_SESSION['login'] == 1) { include_once($_SERVER['DOCUMENT_ROOT'] . "/main/"); } 但我希望它看起来更干净,然
if (!$_SESSION['login'] && $_SESSION['login'] == "") {
include_once($_SERVER['DOCUMENT_ROOT'] . "/login/");
} elseif ($_SESSION['login'] == 1) {
include_once($_SERVER['DOCUMENT_ROOT'] . "/main/");
}
但我希望它看起来更干净,然后我开始思考是否有可能通过一个函数实现这样的功能:
checklogin($_SESSION['login']);
function checklogin() {
return (isset($_SESSION['login'])) ? true : false;
}
我对函数没有太多的经验,如果我的问题看起来很愚蠢,我很抱歉,所以请提前感谢。试试这个
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;
}
}
只需使用:
或者将其浓缩:
include_once $_SERVER['DOCUMENT_ROOT'].(empty($_SESSION['login']) ? "/login/" : "/main/");
这是您需要的:
function userCheck()
{
return (isSet($_SESSION['login']) && $_SESSION['login']);
}
if(userCheck())
include_once($_SERVER['DOCUMENT_ROOT'] . "/main/");
else
include_once($_SERVER['DOCUMENT_ROOT'] . "/login/");
不管你的方法是否合理,我认为这会达到你的预期:
function checklogin($login){
if (!$login && $login == "") {
include_once($_SERVER['DOCUMENT_ROOT'] . "/path/");
}
}
// **** call to the function
checklogin($_SESSION['login']);
// ****
您可以使用此功能:
checklogin($_SESSION['login']);
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
}
别担心,你发布的两个片段都是完全有效的。如何构造代码以及将逻辑放在何处取决于您。但它一定在某个地方。因此,如果您只需要该函数(如第二个示例中所示),那么上一个示例中的逻辑必须位于该函数内部。它不能就这样消失。您应该尽可能重用现有的身份验证框架,因为它确实很复杂。例如,看看哪个是框架不可知的,哪个是数据库不可知的。