繁体   English   中英

为什么我会收到错误代码显示(PHP 警告)

[英]Why do I get an error code shows (PHP Warning)

我的问题 :

PHP Warning:  preg_match() expects parameter 2 to be string, array given in *****

我的代码:

foreach ($_POST as $secvalue) {
  if ((preg_match("/<[^>]*iframe*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*object*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*applet*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*meta*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*onmouseover*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]script*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*body*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]style*\"?[^>]*/", $secvalue))) {
   die ($htmltags);
  }
 }
}

什么问题 ? 什么是正确的代码? 坦克

问题是您将数组作为第二个参数传递给preg_match() ,但preg_match()将第二个参数作为字符串值。

检查将从发布请求中获取所有键值的波纹管代码。

foreach ($_POST as $key => $secvalue){
 if ((preg_match("/<[^>]*iframe*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*object*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*applet*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*meta*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*onmouseover*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]script*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]*body*\"?[^>]*/", $secvalue)) ||
  (preg_match("/<[^>]style*\"?[^>]*/", $secvalue))) {
   die ($htmltags);
  }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM