我有php脚本,当我执行此代码时,我收到警告
警告:trim()期望参数1为字符串,在home / public_html中给出数组
我为安全漏洞添加了antixss功能,如下面的代码所示。我该如何解决此警告?
<?php
$email_to = "";
$email_subject = "";
$success = "";
function antixss($value)
{
$xss = htmlspecialchars(trim($value));
return $xss;
}
if(!isset($_POST['First_Name']) ||
!isset($_POST['Last_Name'])
{
died('Sorry, there appears to be a problem.');
}
$first_name =antixss($_POST['First_Name']);
$last_name = antixss($_POST['Last_Name']);
如何解决此警告?感谢
答案 0 :(得分:1)
看来错误出现在你的HTML中,而不是在php中。
如果$_POST['First_Name']
是一个不应该是的数组,那么很可能你的html看起来像:
<input name="First_Name[]" ...>
^^ here, remove this
答案 1 :(得分:0)
首先,你的IF语句全部搞砸了
if(!isset($_POST['First_Name']) || !isset($_POST['Last_Name']) ||
{
died('Sorry, there appears to be a problem.');
}
用支架开始,用OR符号(||
)结束。首先修复,如下所示:
if(!isset($_POST['First_Name']) || !isset($_POST['Last_Name'])){
died('Sorry, there appears to be a problem.');
}
然后,如果问题仍然存在,请在var_dump($value)
和/ var_dump($_POST)
内部输入antixss()
函数,这样就可以这样了
function antixss($value){
var_dump($value); var_dump($_POST); exit();
$xss = htmlspecialchars(trim($value));
return $xss;
}
告诉我们输出是什么。