使用功能遍歷對象,檢查它是否是一個數組或沒有,並相應地消毒。這樣的東西應該工作:
function htmlspecialchars_obj(&$variable)
{
foreach ($variable as &$value)
{
// Check if item is an array or object, if so call this function recursively.
if (is_array($value) || is_object($value))
{
htmlspecialchars_obj($value);
}
else
{
// Otherwise, sanitize this item and continue iteration.
$value = htmlspecialchars($value);
}
}
}
注意:這通過引用並修改您給它的參數,而不是返回編輯的副本。
下面是如何使用功能的例子:使用你提供的代碼示例
// Initialise an array/object (whatever needs to be protected).
$myVariable = array();
$myVariable['xss'] = "<script>alert('xss attack');</script>";
$myVariable['noxss'] = "Just a plain string.";
// Use the function:
htmlspecialchars_obj($myVariable);
// Now $myVariable is safe to print:
foreach($myVariable as $key => $value){
print($value);
}
這裏:
$pc_acc = $_POST["pc_accesoires"];
htmlspecialchars_obj($pc_acc);
$SQLInsertReq = "INSERT INTO maintenance (pc_accesoires) VALUES (?)";
$InsertRerSTMT = $connect->stmt_init();
if(!$InsertRerSTMT->prepare($SQLInsertReq)){
$ro = $InsertRerSTMT->error;
echo $ro;
exit();
}
else {
$accesoires = mysqli_real_escape_string($connect, $accesoires);
$accesoires = implode(',', $accesoires)
$InsertRerSTMT->bind_param('s', $accesoires);
$InsertRerSTMT->execute();
}
function htmlspecialchars_obj(&$variable)
{
foreach ($variable as &$value)
{
// Check if item is an array or object, if so call this function recursively.
if (is_array($value) || is_object($value))
{
htmlspecialchars_obj($value);
}
else
{
// Otherwise, sanitize this item and continue iteration.
$value = htmlspecialchars($value);
}
}
}
只是這樣?哦,我的上帝 !!!我很努力:D thx很多:p –
沒問題 - 請標記爲已接受的答案,如果它符合您的需求。請也刪除你的其他答案 - 這種事情會激怒管轄這個網站的權力:) – Alfie
抱歉不工作:/動態添加的字段不要插入到mysql表 –