我是PHP新手(Be gente)我有两个功能,我希望能够在adminOnlyAccess()
中调用getUserLevel()
,甚至可以做到这一点吗?两者都是functions.php
中的功能。
这是getUserLevel()
:
function getUserLevel(){
$sql = 'SELECT * FROM author WHERE id = :sessionID';
$stmt = dbConnection()->prepare($sql);
$stmt->bindValue(':sessionID', $_SESSION['id']);
$stmt->execute();
$data = $stmt->fetch();
return $data['role'];
}
这是adminOnlyAccess()
:
function adminOnlyAccess($access = TRUE){
$sql = 'SELECT * FROM author WHERE id = :sessionID';
$stmt = dbConnection()->prepare($sql);
$stmt->bindValue(':sessionID', $_SESSION['id']);
$stmt->execute();
$data = $stmt->fetch();
if ($access == TRUE && $data['role'] != 1)
{
include '../accessdenied.php';
exit();
}
}
是的...它是完全可能的
function adminOnlyAccess($access = TRUE){
$roles = getUserLevel();
// $roles now has all the values returned by getUserLevel()
$sql = 'SELECT * FROM author WHERE id = :sessionID';
$stmt = dbConnection()->prepare($sql);
$stmt->bindValue(':sessionID', $_SESSION['id']);
$stmt->execute();
$data = $stmt->fetch();
if ($access == TRUE && $data['role'] != 1)
{
include '../accessdenied.php';
exit();
}
}
我不明白为什么不能。您可以将adminOnlyAccess
转换为如下:
function adminOnlyAccess($access = TRUE){
if ($access == TRUE && getUserLevel() != 1)
{
include '../accessdenied.php';
exit();
}
}