我正在提取数据库信息并将其显示在表格中,标题列的内容链接到动态页面。这一切都很完美,但在使用W3C Validator验证我的输出页面时,我收到以下错误,并且不知道如何修复它!
错误值newpage.php?url = DATABASE有关元素a的属性href的信息:查询中的非法字符:不是URL代码点。
然后突出显示a href">"的结束标记。
<?php
echo"<table>
<tr>
<th>Title</th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</table>";
if (mysqli_num_rows($SQLresult) == 0 )
{
echo 'No results found, please try again.';
}
else
{
while ($row = mysqli_fetch_assoc($SQLresult))
{
echo "
<table>
<tr>
<td><a href='newpage.php?url=".$row['title']."'>".$row['title']."</td>
<td>".$row['A']."</td>
<td>".$row['B']."</td>
<td>".$row['C']."</td>
<td>".$row['D']."</td>
</tr>
</table>";
}
}
?>
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
并非所有字符在网址中都是合法的。那些不合法的可以使用百分号和两个十六进制数字进行重新编码。 PHP的urlencode()
函数可以做到这一点。在要成为链接的部分使用urlencode()
。
$url = urlencode($row['title']);
...
<td><a href='newpage.php?url=".$url."'>".$row['title']."</td>
或者,你可以这样做:
<td><a href='newpage.php?url=".urlencode($row['title'])."'>".$row['title']."</td>
您可以在RFC2396中找到有关URL / URI中合法字符的更多信息:https://tools.ietf.org/html/rfc2396#section-2