【发布时间】:2011-05-01 03:51:17
【问题描述】:
我在一个数组中有一系列会话变量。当我在我的字符串变量之一中使用引号时,我尝试添加斜杠,以便最终将其插入数据库,但添加斜杠()函数不起作用。这是一个例子。
在 cmets 字段中,我这样写:
这是“评论”
我意识到这是一个问题,所以我在将它输入数据库之前添加了一个函数,该函数通过一系列 Session 变量运行,包括 cmets 变量。
$strip_fields = array($_SESSION['comments'],$_SESSION['employee_id'],$_SESSION['approved_by'],$_SESSION['delivery_email'],$_SESSION['full_name'],$_SESSION['first_name'],$_SESSION['last_name']);
foreach($strip_fields as $key => $value) {
$key = addslashes($key);
}
运行此函数后,我尝试回显 cmets 变量 $_SESSION['cmets']
这是“评论”
所以我可以看到,addslashes 函数在某种程度上不能像我使用它那样工作。为什么 addlashes 函数不能像我使用的那样工作?
这是我的解决方案(我从两个建议中都使用了一点)
$strip_fields = array(
'employee_id', 'approved_by', 'delivery_email', 'full_name',
'first_name', 'last_name', 'title', 'title_2', 'dept_div',
'dept_div_2', 'email', 'comments', 'special_instructions'
);
foreach($strip_fields as $key) {
$_SESSION[$key] = $conn->real_escape_string($_SESSION[$key]);
}
【问题讨论】:
标签: php arrays session escaping