通常我使用trim()
PHP函数来检查数据是否为空。另外对于MySQL我使用mysql_real_escape_string()
。这是否够用,还是我需要执行额外的检查?
-2
A
回答
3
要检查数据是否为“空”,可以使用empty()。
是的,为了逃避你使用MySQL的mysql_real_escape_string()
的数据。默认情况下,trim()
用于修剪尾随和前导空白(如果没有附加参数使用)。
是否很难检查手册每个功能的作用?
1
我经常这样做:
$foo = isset($_POST['bar']) ? trim($_POST['bar']) : '';
if (!empty($foo))
$db->query("UPDATE table SET foo = '".mysql_real_escape_string($foo)."'");
0
if (!empty($_POST['data']) && other controls) {
// Success
$data = mysql_real_escape_string($data)
$sql = "SELECT * FROM users WHERE data = '$data'";
mysql_query($sql);
}
0
我倾向于使用isset($ _ POST [ '键1'],$ _ POST [ '键2'],$ _ POST [ 'keyn'])作为确定表单是否已提交所有必需数据的起点,以及诸如$ _SERVER ['REQUEST_METHOD'],$ _SERVER ['SERVER_PORT'],$ _SERVER ['REQUEST_URI']等测试项目。修剪不是有害的,但我只是用preg_match($ needle,$ haystackenter)去做颈静脉,并且使正则表达式非贪婪和非缓冲区捕获。总之,为什么条件输入,当你可以只是使测试失败?
语言结构empty()可以工作,但是如果该值与您正在查找的模式不匹配,它真的很重要吗?对于表演,谁可以说是否有人复制并粘贴了牛津英语词典,在这两种情况下都会发生什么。
function ValidatePostKeyAndValue($input, $pattern, $length)
{
if(isset($input) &&
preg_match($pattern, $input) &&
ctype_print($input) &&
strlen($input) <= $length &&
is_string($input))
{
return true;
}
else
{
return false;
}
}
根据具体情况我可以做更多或更少。布尔函数是你的朋友。
至于你的$ data变量,我认为这将是明智的考虑,如果通配符_和%可能会出现在你的数据。如果是这样,可以使用addcslashes()来定位字符串中的那些字符。不过,移至mysqli()将使您不必使用mysql_select_db()。 mysqli_connect()为你做到这一点!很值得转换。
相关问题
- 1. PHP - 另一种存储$ _POST数据的方法?
- 2. 是否有另一种方法来测试枚举位字段?
- 3. 是否有另外一种方法来编写if语句?
- 4. 是否有另一种方法来设置DataGrid列对齐?
- 5. 这三种验证方法的实现是否有区别?
- 6. 有没有一种方法来验证hAtom微格式?
- 7. 是否有另一种同步方式
- 8. 是否有另一种方法来启动进程比child_process中的方法?
- 9. 是否有可能重写jquery.validate各种验证方法?
- 10. 有没有一种方法来验证探测read()方法是否对文件进行了完美的读取?
- 11. 验证是否三种方法之一与
- 12. 将数据从一种方法传递到另一种方法
- 13. 是否有一种标准方法来乘以分数?
- 14. 在IDA Pro中,是否有一种方法来标记函数?
- 15. Selenium有没有一种方法来验证项目的数量是否符合标准?
- 16. JQuery添加验证方法来验证有关另一个元素的形式
- 17. 另一种检查图像url的方法是否有效
- 18. 是否有另一种方法来创建backrground任务而不使用AsyncTask?
- 19. 是否有另一种方法从Planet.osm中提取数据转储?
- 20. 有没有一种方法来验证一个词是否存在于确定的习惯用语中?
- 21. 找出是否有一种方法可以调用另一个方法
- 22. 这种验证/登录用户的方法是否安全?
- 23. 验证用户输入的另一种方法
- 24. 还有另一种方法来优化这种冒泡排序?
- 25. 是否有另一种方法来分配我不知道的PHP变量?
- 26. 是否有另一种方法在java中执行repaint()?
- 27. 有没有一种标准的方法来验证Web API的应用程序?
- 28. 有没有一种方法来验证用户是否使用google autocomplete输入街道地址?
- 29. 有没有一种方法来验证Facebook中的帖子是否已经通过Graph Api删除?
- 30. 是否有一种紧凑的方法来定义因变量?
**快速提示:**如果在trim()之前检查空白,您仍可以在数据库中以空值结束。想象一下,如果发送的数据只包含一个或多个不是“空”的空间,而是在修剪之后。的 – kapa
可能重复的[Kohana的3:验证模型的示例](http://stackoverflow.com/questions/2462201/kohana-3-example-of-model-with-validation) - 你具有标记接力和Kohana中,我猜猜这就是你要找的。 – hakre