0
如果它包含数组中的任何单词,我一直在试图匹配post查询sting。 我尝试使用命令执行sql查询来更新或选择,但我不想删除或删除行和表。如果任何单词在数组中匹配字符串的PHP代码
请娄代码不匹配阵列以及
<?php
if(isset($_POST['QueryCode'])){
$RequestQuey = htmlspecialchars($_POST['QueryCode']);
$sqlchecker = strtolower($RequestQuey);
$bads_arrays = array(
'ALTER',
'TABLE',
'DROP');
foreach ($bads_arrays as $strings){
if (strpos($sqlchecker , $strings) !== false) {
echo "Match found";
return false;
}else{
echo "Not found!";
return true;
}
}
?>
它的工作,但是当我输入'下降table'显示它没有找到,但'下降alter'这个节目在调试时发现我尝试打印$字符串里的foreach只包含'还是没有匹配良好改变' – Alex
你的代码工作正常,但它有一个问题,当我键入这样的事情'alterdatatable'它会显示'找到匹配',但在数组中我只添加'alter'因此可能'alterdatatable'这将是数据库表名 – Alex
“Google”是否包含“Goo”?是的它确实;) 你可以在你的$ bad_arrays中使用单词定义,例如在最后添加一个空格(所以“ALTER”而不是“ALTER”等等。 –