为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 stripslashes() 在也使用数组时期望参数 1 是字符串

如何修复 stripslashes() 在也使用数组时期望参数 1 是字符串

PHP
汪汪一只猫 2022-01-08 14:41:47
我有一个将值传递给电子邮件的 php 表单。该表单具有单个值和数组。我收到以下错误,我无法修复它。警告:stripslashes() 期望参数 1 是字符串,数组在 /home/...... 第 147 行如果尝试添加if(is_array$cleanvalue = stripslashes($value);第 147 行如下:#clean fields for repost or displayforeach ($_POST as $key=>$value) {$cleanvalue = stripslashes($value);$repostvalue = stripquotes($cleanvalue);$hiddenhtml .= "<input type=\"hidden\" name=\"$key\" value=\"$repostvalue\">\n";${$key} = $cleanvalue;}提交表单后,我收到以下错误,但直到填写整个表单。警告:stripslashes() 期望参数 1 是字符串,数组在 /home/...... 第 147 行
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

如果是,您可以尝试在每个值上使用is_array()和映射stripslashes():


foreach ($_POST as $key=>$value) {

    if (is_array($value)) {

        ${key} = array_map('stripslashes', $value);

    } else {

        $cleanvalue = stripslashes($value);

    } 


    $repostvalue = stripquotes($cleanvalue);

    $hiddenhtml .= "<input type=\"hidden\" name=\"$key\" value=\"$repostvalue\">\n";

    ${$key} = $cleanvalue;

}

看起来stripquotes()可能是自定义功能?您需要类似地修改它。如果您想再次在 html 中输出它们,您将需要以不同的方式循环您的值,可能是这样的:


foreach ($_POST as $key=>$value) {

    if (is_array($value)) {

        ${key} = array_map('stripslashes', $value);

    } else {

        $cleanvalue = stripslashes($value);

    } 


    $repostvalue = stripquotes($cleanvalue);


    if (is_array($value))

    {

        foreach($repostvalue as $repost) {

            $hiddenhtml .= "<input type=\"hidden\" name=\"$key[]\" value=\"$repost\">\n";

        }


    } else {

        $hiddenhtml .= "<input type=\"hidden\" name=\"$key\" value=\"$repostvalue\">\n";

    }


    ${$key} = $cleanvalue;

}


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信