我搜索适合搜索查询的关键字。信息得到了回应。它就像一个搜索引擎。 但我似乎无法使用空格来使用数据库中的关键字。 我已经搜索了一下但似乎无法使其正常工作。
<?php
// -- Database Connection --
if (isset($_POST['search_query'])) {
$search_query = mysql_real_escape_string(htmlentities($_POST['search_query']));
echo "<div class=\"searchText\">Search</div><hr />";
//explode the search term
$search_query_x = explode(" ",$search_query);
foreach($search_query_x as $search_each) {
$x++;
if($x==1)
$construct .="keywords = '$search_each'";
}
$construct ="SELECT * FROM search WHERE $construct";
$run = mysql_query($construct);
$foundnum = mysql_num_rows($run);
if ($foundnum==0) {
echo "Sorry, there are no matching result for <b>$search_query</b>.</br></br>1.
Try more general words.</br>2. Try different words with similar
meaning</br>3. Please check your spelling";
} else
{
echo "$foundnum results found !<p>";
while($runrows = mysql_fetch_assoc($run))
{
$title = $runrows ['title'];
$desc = $runrows ['description'];
$url = $runrows ['url'];
echo "
<div class='width: 400px;'>
<div class='title'><a href='$url'><b>$title</b></a></div>
<div class='url'>$url</div>
<div class='desc'>$desc</div>
</div>
<br />
";
}
}
}
else
{
echo "An ERROR HAS OCCURED ...";
}
?>
答案 0 :(得分:1)
在$search_query_x = explode(" ",$search_query);
中,由于空格分割,你的空白区域被删除了。
你必须选择一个新的分隔符来分隔数据 - 比如逗号而不是空格。
答案 1 :(得分:0)
$search_query = mysql_real_escape_string(htmlentities($_POST['search_query']));
导致您的脚本将空格更改为与URL兼容的%20。摆脱htmlentities功能(此时并没有真正提高安全性),它应该可以正常工作。
在提供来自不安全来源的信息时,应使用Htmlentities函数。
在向用户显示信息时,请务必调用(首选)htmlspecialchars或htmlentities以防止跨站点脚本(XSS)。
在评论中也注意到您使用的是过时的功能。