我正在使用电子贺卡程序here发送活动邀请并收到以下通知:
注意:数组转换为字符串 /nfs/c07/h01/mnt/108712/domains/christmasnativity.org/html/ecard/include/common.inc.php 在第32行
以下是第29至33行的代码:
/* Clean up request: Remove magic quotes, if the setting is enabled. */
if (get_magic_quotes_gpc()) {
foreach($_REQUEST as $name => $value)
$_REQUEST[$name] = stripslashes($value);
}
可能导致此错误通知的任何线索?
感谢。
答案 0 :(得分:4)
$_REQUEST
中的一个值是数组。如果变量使用foo[]
等名称,则会发生这种情况。
答案 1 :(得分:1)
您可以避免在像
这样的数组上运行stripslashesif (get_magic_quotes_gpc()) {
foreach($_REQUEST as $name => $value)
if(!is_array($value)){
$_REQUEST[$name] = stripslashes($value);
}
}
但是数组$value
内的值不会被剥离。
更完整的解决方案是这样的:
if (get_magic_quotes_gpc())
{
strip_slashes_recursive($_REQUEST);
}
function strip_slashes_recursive(&$array)
{
foreach ($array as $key => $value)
{
if (is_array ($value))
{
strip_slashes_recursive ($array[$key]);
}
else
{
$array[$key] = stripslashes($value);
}
}
}
答案 2 :(得分:0)
像Ignacio Vazquez-Abrams所说,其中一个$value
是一个数组。您可以使用以下内容查看什么是数组(假设您可以/可以将结果输出到您可以看到的地方):
$_REQUEST[$name] = stripslashes($value);
var_dump($value);