Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我错过了什么?SQL注入_Php_Mysql_Sql_Preg Match_Htmlspecialchars - Fatal编程技术网

Php 我错过了什么?SQL注入

Php 我错过了什么?SQL注入,php,mysql,sql,preg-match,htmlspecialchars,Php,Mysql,Sql,Preg Match,Htmlspecialchars,我正试图尽可能地过滤掉,以防止令人讨厌的SQL注入,下面是我的代码示例,有什么我遗漏的吗 $name = htmlspecialchars($row['name']); echo '<div class="col-sm-7">'.$name.'</div>'; 所以我的代码包括上面的这些,我有没有遗漏什么可以防止进一步的错误 还有一个问题 既然这些数据不是来自我的表单,我是否必须过滤掉我自己的定义?e、 g $currentdate=mysqli\u real\u es

我正试图尽可能地过滤掉,以防止令人讨厌的SQL注入,下面是我的代码示例,有什么我遗漏的吗

$name = htmlspecialchars($row['name']);
echo '<div class="col-sm-7">'.$name.'</div>';
所以我的代码包括上面的这些,我有没有遗漏什么可以防止进一步的错误

还有一个问题

既然这些数据不是来自我的表单,我是否必须过滤掉我自己的定义?e、 g


$currentdate=mysqli\u real\u escape\u字符串($conn,trim(日期(“Y-m-dh:i:sa”))

就个人而言,我认为您可以进行SQL注入,但我想看看一些人在评论中说了些什么


另一个与SQL注入无关的注释,您可能需要考虑使用“<代码> $No./COD>”来删除任何不需要的HTML字符。

然后使用准备好的语句使用替换参数,您不必过滤掉任何“无效字符”,这没有任何意义。使用转义(正如您已经做的那样),或者更好地使用“准备好的语句”和“参数绑定”。查看“是”中的
filter\uuu
函数集,查看用于查询数据库的PDO。或者甚至是一个ORM(推进/条令),如果你有很多表,并且想能够在你的coceis中轻松地操作数据库实体,那就是
pattern=“[a-z0-9.+%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$”
,在html代码中?你在“另一个注释”上卖给我了干杯,我现在将它添加到我的php中:)
if( $_POST["name"] ) {
 if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
     die ("Invalid characters.");
}

$name = mysqli_real_escape_string($conn, trim($_POST['name']));