首先,如果我在提问中没有提供足够的信息,请原谅我,我是开发人员领域的新手,几周前,我刚刚成为初级软件开发人员,这是一个很棒的机会。
我有一个正在处理的项目,它是一个基本的CRUD管理系统。 我有一个登录过程,所有设置都由用户帐户完成,但是我希望某些事情需要“管理员”权限,例如从库存中删除物品。
因此,当前所有内容都按原样运行(只是无需管理员检查)
我已经在我的config.php中实现了此功能(通过标头包含在每个页面中)
function checkAdmin($conn)
{
$id = $_SESSION['member_id'];
$sql = "SELECT admin FROM members WHERE id = $id";
$query = mysqli_query($conn, $sql);
$rs = mysqli_fetch_array($query);
$admin = $rs['admin'];
if($admin == 1){
return true;
}else{
return false;
}
}
所以我的问题是,我该如何将该值“ true / false”传递给我的查询。 我使用jQuery / Ajax进行查询,但是我知道这将在我所有查询所在的“ ajax.php”页面上处理。 我当前的代码是:
if(isset($_GET['deleteID']))
{
if('checkAdmin' == true){
$id = $_GET['deleteID'];
$sql = "DELETE FROM members WHERE id=$id";
mysqli_query($conn, $sql);
recordLog($conn, "Members", "Removed user #$id");
$data = [
'success' => true
];
}else{
$data = [
'error' => 'Admin Privileges Required'
];
}
echo json_encode($data);
}
没有If(checkAdmin ==
语句,实际的代码本身可以工作,但是我认为我的代码并不正确。
在此先感谢您的帮助:)如果需要更多信息,请告诉我
答案 0 :(得分:1)
在if
语句中调用该函数:
if(checkAdmin($conn) == true){
或者,您可以这样做:
$checkAdmin = checkAdmin($conn);
if($checkAdmin == true){
请注意,您面临严重的SQL注入风险。立即实施:How can I prevent SQL injection in PHP?这很糟糕,很糟糕,很糟糕:
$id = $_GET['deleteID'];
$sql = "DELETE FROM members WHERE id=$id";