我在文件viewreport中有一个关于票证的操作:
if(isset($_GET['closeticket']) == 'true')
{
$db->query("update tickets set status='Closed' where id='$id'");
header("Location: viewreport?id=".$id."");
但即使是用户也可以通过网址关闭不属于他的票证。 所以我想阻止直接网址操作。
这是行动
a href "viewreport?closeticket=true&id= <?php echo $id;?>" class="btn btn-danger" id="">Close</a>
答案 0 :(得分:0)
您应该通过会话或cookie检查此操作是否属于用户。
一定是这样的
if($_SESSION["group"] == "Admin" ){
// update operation.
}
我希望这会对你有所帮助。
答案 1 :(得分:0)
在执行之前,您应该检查是否允许用户关闭该报告。
因此像:
if(isset($_GET['closeticket']))
{
$userIsAllowed = true; // your magic here
if ($userIsAllowed) {
$db->query("update tickets set status='Closed' where id=" . $db->quote($id));
header("Location: viewreport?id=".$id."");
} else {
echo "You're not allowed closing this ticket";
}
}
请务必按照评论(chelmertz)
中的说明正确转义您的查询