如何管理用户权限?(Php、Mysql)
与我之前的文章一样,我正在创建一个在线店面。我这次要做的是允许管理员或发布该项目的用户能够编辑/删除该项目,这也是我需要完成的最后一部分。 这是我创建的代码,用于检查特定项目的“卖方id”是否与$\u会话[“用户id]”相同。如果是,则允许该用户(如果他/她不是管理员)编辑/删除该项目。但问题是,即使使用该代码,也只有管理员能够编辑/删除项目。有人知道为什么吗如何管理用户权限?(Php、Mysql),php,mysql,Php,Mysql,与我之前的文章一样,我正在创建一个在线店面。我这次要做的是允许管理员或发布该项目的用户能够编辑/删除该项目,这也是我需要完成的最后一部分。 这是我创建的代码,用于检查特定项目的“卖方id”是否与$\u会话[“用户id]”相同。如果是,则允许该用户(如果他/她不是管理员)编辑/删除该项目。但问题是,即使使用该代码,也只有管理员能够编辑/删除项目。有人知道为什么吗 <?php $mysqli = mysqli_connect("localhost", "php24sql", "so
<?php
$mysqli = mysqli_connect("localhost", "php24sql", "some password", "smithside");
$query2 = "SELECT * FROM lots";
$results2 = mysqli_query ($mysqli, $query2);
$row2 = mysqli_fetch_assoc($results2);
$seller = $row2['seller'];
}
?>
<?php if ($accessLevel == 'Admin' || $seller == $_SESSION['user_id']) { ?>
<a class="button edit"
href="index.php?content=lotdelete&cat_id=<?php echo $cat_id_in; ?>&lot_id=<?php echo $lot->getLot_id(); ?>">Delete
</a>
<a class="button edit"
href="index.php?content=lotedit&cat_id=<?php echo $cat_id_in; ?>&lot_id=<?php echo $lot->getLot_id(); ?>">Edit
</a>
<?php } ?>
如果可以的话,请帮忙!谢谢 1。您有一个结束}而没有开始{:
2.您可以先开始会话:
session_start();
...
$row2 = mysqli_fetch_assoc($results2);
$seller = $row2['seller'];
// } <<<<==== ????
?>
....
您的代码存在问题。您正在从“lots”表中选择*,而WHERE语句中没有特定约束。运行查询时,您只选择从“lots”表返回的内容的顶行。在$seller和$SESSION['user\u id'之间进行比较时$seller变量不明确。下面是一些可能有帮助的更新代码 另外……尽量避免在SQL语句中使用*。通过选择要读取的列,可以减少需要分析的数据量。此外,这是一种很好的做法
$query2 = "SELECT * FROM lots WHERE <columnName> = {$_SESSION['user_id']}";
$results2 = mysqli_query ($mysqli, $query2);
$row2 = mysqli_fetch_assoc($results2);
$seller = $row2['seller'];
}
?>
<?php if ($accessLevel == 'Admin' || $seller == $_SESSION['user_id']) { ?>
@DagurTidalwave请更改数据库凭据。这些凭据可能对您不重要,它们可能是专用开发服务器的临时凭据,但在发布之前始终删除私人信息(包括密码)是一种很好的做法。您真的应该立即更改数据库上的密码。它已在多个服务器上发布您问了几个问题。现在已经太晚了,您可能已经编辑了它,但它可以在编辑历史记录中查看。请尽快在数据库服务器上更改它!@DagurTidalwave您[已启动会话[?您需要在每个可以从会话数组加载值的页面上调用会话\u start.@t0是的,我已经完成了,但它仍然不起作用。
$query2 = "SELECT * FROM lots WHERE <columnName> = {$_SESSION['user_id']}";
$results2 = mysqli_query ($mysqli, $query2);
$row2 = mysqli_fetch_assoc($results2);
$seller = $row2['seller'];
}
?>
<?php if ($accessLevel == 'Admin' || $seller == $_SESSION['user_id']) { ?>