如何修复 stripslashes() 在使用数组时期望参数 1 为字符串
How to fix stripslashes() expects parameter 1 to be string when also using array
我有一个 php 表单可以将值传递给电子邮件。该表单具有单个值和数组。我收到以下错误,我无法修复它。
警告:stripslashes() 要求参数 1 为字符串,/home/...... 第 147 行中给出的数组
如果尝试添加
if(is_array$cleanvalue = stripslashes($value);
第147行如下:
#clean fields for repost or display
foreach ($_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 行中给出的数组
您可以尝试对每个值使用 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;
}
我有一个 php 表单可以将值传递给电子邮件。该表单具有单个值和数组。我收到以下错误,我无法修复它。
警告:stripslashes() 要求参数 1 为字符串,/home/...... 第 147 行中给出的数组
如果尝试添加
if(is_array$cleanvalue = stripslashes($value);
第147行如下:
#clean fields for repost or display
foreach ($_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 行中给出的数组
您可以尝试对每个值使用 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;
}