所有
有一个文字区域说
<input type="submit">
如果用户将输入设为,
here is my name and my mail id is "a@x.com"
当数据在服务器端发布时,数据将被收到 这是我的名字,我的邮件ID是“a@x.com”
在双引号后面添加反斜杠。现在如何在提交之前对数据进行编码。我在服务器端使用php ..
感谢。
答案 0 :(得分:3)
这是magic_quotes_gpc开始 - 删除它只是在php.ini中禁用它或使用stripslashes删除它($ your_var);
虽然请记住这是php的一个(糟糕的)安全功能,但是当将数据存储到数据库时,您应该使用相应的转义函数来防止sql注入,并且当显示用户发布的数据时,您的清理功能应该防止xss注射。
答案 1 :(得分:2)
看起来您的服务器上启用了指令magic_quote_gpc
:
当magic_quotes开启时,所有' (单引号),“(双引号),\ (反斜杠)和NUL的逃脱 自动反斜杠。
如果您无法在服务器配置中禁用它,那么解决方案将是:
stripslashes
关于这一点,您可以阅读Disabling Magic Quotes部分。
当然,在使用之前,您必须正确地转义数据;例如,在将其注入SQL查询之前。
答案 2 :(得分:2)
如果您的网络托管服务提供商不允许您在php.ini文件中禁用它,您也可以在PHP中删除魔术引号。将此代码放在PHP脚本之上:
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value) {
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
答案 3 :(得分:1)
在php.ini中禁用magic_quotes或在PHP中使用stripslashes($text)
删除斜杠。
答案 4 :(得分:1)
您的系统上可能启用了魔术引号。这不是good thing。