我正在尝试回显链接和说明,点击后会打开该链接。该链接位于我的数据库中,已包含http://这是我发现的内容。
href="'.trim($row['link']).'"
给我
http://localhost/venue/www.interplay.xyz
请注意,http://已从$行中删除。删除trim()给了我相同的结果。我在插入数据库的php页面中评论了这个。
$link = htmlentities($link)
但这让我很容易注入代码。
另外,我试过这个,没有评论出这些问题。
href="http://'.trim($row['link']).'"
它给了我
about:blank
不知道这是否有帮助。我们,这是我的整个PHP选择和回显链接。请找到问题,或者给我一个替代htmlentities来保护这个表格。谢谢。
<?php
//selected latest uploaded shout link
$sqlShout = "SELECT *
FROM shout
WHERE id = ( SELECT MAX(id) FROM shout ) ;";
//display latest uploaded shout link
if ($resultShout = mysqli_query($con, $sqlShout))
{
while($row = mysqli_fetch_assoc($resultShout))
{
$_SESSION['shoutid'] = $row['id'];
echo '<a target="_blank" href="http://'.trim($row['link']).'"><center>
<font size="6">'.trim($row['title']).'</font><br>
<font size="2">'.trim($row['link']).'</font>
</a></center> ';
}
}
?>
答案 0 :(得分:0)
是。 @LinkinTED是正确的。问题可能与$row['link']
的值有关。
请检查$row['link']
的值。我用变量$ row1替换$ row [&#39; link&#39;]。
我得到了预期的答案。
<?php
$row1='http://www.google.com';
$answer=trim($row1);
echo $answer ."</br>"; // ...........1
echo "http://".trim($row1)."";//..........2
?>
答案如下:
http://www.google.com
http://http://www.google.com
trim()
函数返回一个字符串,其中从str的开头和结尾剥去了空格。如果没有第二个参数,trim()将删除这些字符:
" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.