strip_tags()期望参数1为字符串 - 错误

时间:2013-09-30 06:34:27

标签: php

使用数月后,我的申请表突然停止,出现此错误:

Warning: strip_tags() expects parameter 1 to be string, array given in /home/useraccount/public_html/My_Application.php on line 9

第9行开始cookie,但即使我删除它似乎与strip_tags行相关。为什么会突然停止工作? 这已经有好几个月没有问题了。服务器是5.3,我看到升级到5.3.26。这种改变实际上是否导致了这种情况?

if ($_POST)
{
    session_set_cookie_params(0);
    session_start();
    $post = new stdClass; 
    foreach ($_POST as $key => $val)
    $post->{$key} = trim(strip_tags($_POST[$key]));
    $post->accident_type =$_POST['accident_type'];
    $_SESSION['post']=$post;
} 
more code continued...

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

嗯,显而易见的是 - 你的$_POST[$key]数组而不是字符串。因此,您需要决定在应用程序的逻辑方面做些什么。我可以建议:

if(is_scalar($_POST['$key']))
{
   //treat any scalar value as string and do stuff:
   $post->{$key} = trim(strip_tags($_POST[$key]));
}
else
{
   //here you need to decide what to do with such things as arrays
}