繁体   English   中英

验证错误:元素a上属性href的值错误:查询中的非法字符:不是URL代码点

[英]Validation Error: Bad value for attribute href on element a: Illegal character in query: not a URL code point

我正在提取数据库信息并将其显示在表中,标题列的内容链接到动态页面。 一切正常,但是使用W3C验证程序验证输出页面时,出现以下错误,不知道如何解决!

错误值newpage.php?url =元素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>";
            }          
        }
?>

任何帮助将不胜感激,谢谢。

并非所有字符在URL中都是合法的。 那些不合法的可以使用百分号和两个十六进制数字重新编码。 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM