禁止搜索少于4个字符

时间:2013-05-23 作者:Mario Lorenzo

当用户搜索1、2或3个字符时,这会给数据库带来很大压力。恶意用户可以搜索1、2或3个字符,从而使我的网站屈服。

我想我可以使用一些Jquery代码来防止用户在搜索时输入少于4个字符。

   <form method="get" id="searchform" action="<?php echo home_url(); ?>/">                             
                            <input type="text" value="<?php _e( \'search\', \'swagger\' ); ?>" onfocus="if (this.value == \'<?php _e( \'search\', \'swagger\' ); ?>\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'<?php _e( \'search\', \'swagger\' ); ?>\';}" name="s" id="s" />          
                        </form> 
有什么建议吗?

1 个回复
SO网友:fuxia

您可以使用pattern attribute 要求至少3个字符:

<input pattern=".{3,}">
但如果你的数据库仅仅因为有人搜索了一个三个字母的单词就死掉了……那么除了搜索,你还有其他问题。改为优化数据库,或找到其他解决方案。一次简单的搜索,甚至每分钟几十次都不应该是问题。

要捕获空搜索,请参阅我在WPEngineer上的文章:Fix Empty Searches

结束

相关推荐

Search outside of the "loop"

我正在创建一个只使用Wordpress后端的博客。我找到了获取最新帖子(wp\\u get\\u recent\\u posts)和我所需的所有数据的函数。我通过包含wp负载来实现这一点,这样我就可以访问wp的功能。然而,我找不到任何允许我在Wordpress的主题循环之外进行搜索的内容,因为我对其余的数据进行了搜索。我希望有一个搜索功能,我可以通过它传递一个搜索查询,可以是标题、正文内容或标签名。如果我在文档中遗漏了一些显而易见的东西,那么在WP的“循环”之外,似乎还有一个功能可以满足我需要的所有其他东