我的代码提取了报告的详细信息,但我只希望显示详细信息,如果该特定报告与尝试查看它的用户相关联.我想知道WHERE在查询中添加第二个子句是否更有效/正确,或者我是否应该使用PHP来检查相关的用户ID?我更喜欢后者,因为管理员可以更容易地访问所有记录.
<?php
$query = mysql_query("SELECT report_id, report_user, report_text
FROM reports
WHERE report_id = '$rid'
AND report_user = '$uid'");
$report = mysql_fetch_assoc($query);
?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
$query = mysql_query("SELECT report_id, report_user, report_text
FROM reports
WHERE report_id = '$rid'");
$report = mysql_fetch_assoc($query);
if ($report['user'] !== $uid) {
// Access Denied
}
?>
Run Code Online (Sandbox Code Playgroud)
提前致谢!比利
我认为你应该在查询选项中进行过滤.如果您的PHP代码中存在一些错误,它会更有效并且可以更好地保护用户隐私.关于查看报告的管理员能力,您可以动态制作查询.
$sql = "SELECT report_id, report_user, report_text
FROM reports
WHERE report_id = ?";
if($userContext)
{
$sql .= " AND report_user = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('dd', $rid, $uid);
}
else //admin context
{
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('d', $rid);
}
Run Code Online (Sandbox Code Playgroud)
你做了什么确保绑定变量.
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |