【发布时间】:2013-05-30 13:29:20
【问题描述】:
该网站旨在显示某些司法管辖区的法律/规则。
有一个简单的 mysqli 查询可以找到县,然后在屏幕上显示县名:
echo "><a href=\"index.php?sel_subj=" . urlencode($subject["county_name"]) . "\">
{$subject["county_name"]}</a></li>";
然后单击县名(嵌入链接),mysqli 查询应该查找具有该县名的表并获取该县内的所有司法管辖区。
if (isset($_GET['sel_subj'] )){
$query2 = "SELECT * FROM $sel_subj";
$result2 = $mysqli2->query($query2) or die($mysqli2->error.__LINE__);
while ($subject = mysqli_fetch_array($result2)) {
echo "<li";
echo "><a href=\"index.php?sel_page=" . urlencode($subject["muni_name"]);
echo "&sel_subj=" . urlencode($sel_subj). "\">
{$subject["muni_name"]}</a></li>";
}
}
问题是某些县名包含空格或连字符。因此,当我单击带有连字符或空格的县时,会出现错误。
当有连字符时出现此错误(例如:Miami-Dade): 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 173 行的“-Dade”附近使用正确的语法
当有空格时出现这个错误(例如:Palm Beach): 表“florida.palm”不存在73
如果县只是一个没有任何特殊字符的字符串,那么显示辖区没有问题。
有没有简单的解决办法?
【问题讨论】:
-
您确定要向黑客提供 THAT 大小的漏洞吗?
-
$sel_subj 的值在哪里设置
-
@Anigel 也许全局变量已打开。其中,user2436671,你应该照顾好。
-
@MaX 这是可能的,但不太可能,因为在包含 mysqli 函数之前,默认情况下已禁用寄存器全局变量。
-
是的。他说他对不包含特殊字符的名称有很好的结果,所以变量显然有一个值,只是给它一个猜测。