【问题标题】:How do i block specific search words on my website from my search form如何从我的搜索表单中阻止我网站上的特定搜索词
【发布时间】:2014-01-31 15:18:41
【问题描述】:

我想阻止来自我的搜索框的某些搜索....地址如下所示:

http://domain.com/search.php?search=dog

我如何设置一个数组或阻止搜索词“狗”的东西?

<form id="headbar-search" action="search.php" method="GET" x-webkit-speech="x-webkit-speech">
<input type="text" name="search" id="jsid-search-input" value="<?php echo$_GET['search']; ?>" class="ui-autocomplete-input search search_input" placeholder="Search&#8230;" tabindex="1"/>
<div class="ui-widget"></div>            
</form>

搜索.php

<?php include 'header.php'; ?>

<!-- Container -->
<div id="container">
<div class="left">
<div class="pic" style="overflow:hidden; margin-top:5px;">
<div style="margin:0 0 5px 0;overflow:hidden;border:none;height:auto;">         
<div class="video-container" style="text-align: left; background: #fff;">
<h2>Search results for: <?php echo htmlspecialchars($_GET['search'], ENT_QUOTES, 'UTF-8'); ?></h2>
________________________________________________________________________________________
<br><br>
<?php
if($svid) {
$squerys = mysql_query("SELECT * FROM videos WHERE title LIKE '%$word%' OR author LIKE '%$word%'");
while($ft = mysql_fetch_array($squerys)){
?>
<table>
<tr>
<td>
<?php if($st['seo'] == 1) { ?>
<a href="./<?php echo seo($ft['title'], $ft['id']); ?>.html">
<?php }else{ ?>
<a href="./?v=<?php echo$ft['id'];?>">
<?php } ?>
<div class="image-container"><img src="<?php echo$ft['thumb_large']; ?>" width="120" height="130"></div></a></td>
<td style="padding-left:10px; vertical-align:top;"><h3>
<?php if($st['seo'] == 1) { ?>
<a href="./<?php echo seo($ft['title'], $ft['id']); ?>.html">
<?php }else{ ?>
<a href="./?v=<?php echo$ft['id'];?>">
<?php } ?>
<?php echo stripslashes($ft['title']); ?></a></h3>By: <?php echo$ft['author']; ?><br><?php echo  number_format(round($ft['views'])); ?> views</td>
</tr>
<br>
</table>
<?php
}
}else{
echo"No results found.";
}

?>

</div>
<div style="margin: 5px 0 0 0;"></div>

</div></div>


</div>

<?php include 'sidebar.php'; ?>


<div class="clear"></div>

</div>
<!-- Container -->

<?php include 'footer.php'; ?>

【问题讨论】:

  • 我们可以看看 search.php 漂亮吗?
  • @bastienbot 已更新...
  • 在提交“IamADog”之类的短语时,您期望什么行为?里面还有Dog这个词。
  • @ThomasDavidPlat 如果有这个词,我不想搜索它......只是为了真正的坏词
  • 享受您的 sql 安全问题(最好检查一下 sqli 和 pdo 是什么)

标签: javascript php jquery search


【解决方案1】:

一个非常快速的标记

$Naughty_Words = array ("Cat","dog");


function DetermineBanned ($Input,$Array){
    if (in_array($Input,$Array)){
        return true;
    }   
    return false;
}


var_dump(DetermineBanned("Cat",$Naughty_Words)); // Returns bool(true) 
var_dump(DetermineBanned("dd",$Naughty_Words)); // Returns bool(false) 
var_dump(DetermineBanned("CatMan",$Naughty_Words)); // Returns bool(false) 
var_dump(DetermineBanned("CatMan",$Naughty_Words)); // bool(false) 
var_dump(DetermineBanned("CatDog",$Naughty_Words)); // bool(false)
   /// Due to the lack of initial code being shown in your question, I have spotted a bug, it's up to you to decide how to make it fool proof 




//Validate with

if (DetermineBanned($_GET['Key'],$Naughty_Words) !== false){
    echo "Banned Words Detected";
    exit;

}

【讨论】:

  • 所以我可以将此 javascript 添加到我的页面,它不会搜索单词 cat 和 dog?
【解决方案2】:

必须在 search.php 文件中完成。

例子:

$excluded_words = array("dog", "hello", "world");
if(in_array($_GET['search'], $excluded_words) {
     echo "Keyword not found";
}

注意:这只是你只传递一个单词

【讨论】:

  • 我所要做的就是将它添加到我的搜索 php 中? @Andresito
  • 在查询数据库之前执行此操作,如果用户搜索排除的单词显示消息并使用 exit() 终止 php 执行;
【解决方案3】:

在您的 html 和 php 之间添加一些 javascript。

<form>
    <input type="text" id="search-box" value="" placeholder="Search&#8230;"/>
    <input type="submit" onclick="search()"/>         
</form>

javascript

var badWords = ["dog"];
function search() {
    var searchStr = document.getElementById("search-box").value;
    var badWordHit = false;
    for (key in badWords) {
        if (badWords[key] == searchStr) {
            badWordHit = true;
        }
    }
    if (badWordHit) {
        alert("I ain't searchin' for no dog");
    }   else    {
        alert("searching");
        // do ajax request here
    }       
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2011-04-22
    • 1970-01-01
    • 2011-05-02
    • 2012-05-26
    相关资源
    最近更新 更多