我正在创建一个搜索表单,在该表单中,客户将能够向车辆输入他们的vin编号,并且该行中的其他相关列将显示出来。通过在select语句中使用where-like运算符,我在某种程度上实现了这个过程,但是,我希望客户机在返回任何行之前必须至少输入五个正确的数字。
在我的代码的当前状态下,只需输入一个数字就可以返回包含该数字的所有行。此外,不输入任何内容并进行搜索将显示所有行。
下面是我的select语句当前的样子:
$query = "SELECT Record, `EMAIL 2`, DATEi, DATEf, PROJECT, `SAMPLE DESCRIPTION`, `FLD5_(As/VIN)` FROM `tbl_2018a` WHERE CONCAT (`EMAIL 2`, `PROJECT`, `SAMPLE DESCRIPTION`, `FLD5_(As/VIN)`) LIKE '%".$valueToSearch."%'";
在这种情况下,valuetosearch是执行搜索时由客户端控制的变量。
有没有办法限制客户端在通过php或修改select语句显示结果之前必须正确输入的字符数?
2条答案
按热度按时间9jyewag01#
有两种解决方案客户端验证和服务器端验证:
这两个都需要在一天结束前实现,否则您就无法执行正确的验证。你不能仅仅依靠客户端验证。
客户端处理
最好先进行客户端验证。否则,您会用不必要的调用来攻击服务器,这反过来会影响您的优化和性能,如果不是立即的话。
如果您在搜索栏中键入时使用jquery than on keyup,您可以检查在搜索框中输入的字符数是否大于或等于5个字符,然后只允许转到ajax请求。
/假设您可能有以下类型的html/
例如在jquery中实现
在服务器端实现ie-php
提交表单后,您需要检查以下验证。
注意:我没有针对安全漏洞演示任何内容
qlvxas9a2#
谢谢大家的帮助。我可以通过修改我的html来找到一个解决方案,从限制客户端输入的最小字符数。
“required minlength”和“required maxlength”函数能够解决我的问题,并限制客户端在数据返回到服务器之前用户必须输入多少个字符。