Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML表单-安全删除斜杠_Php_Html_Forms_Unicode - Fatal编程技术网

Php HTML表单-安全删除斜杠

Php HTML表单-安全删除斜杠,php,html,forms,unicode,Php,Html,Forms,Unicode,我正在使用web表单将用户输入存储到MySQL数据库中,使用$\u POST 我注意到,一旦textarea字段区域被读取,斜杠就会自动插入以转义某些字符 因为我需要在存储之前处理文本,所以我考虑过使用stripslashes,但是我发现如果使用日语或其他亚洲字符集,它可能会垃圾文本 是否有正确的方法安全地执行此任务(删除斜杠)?在PHP设置中关闭。该功能已被弃用。在PHP设置中关闭。该功能已被弃用。如果您不想禁用magic quotes(即使它们在PHP 6.0中不再像在5.3中弃用的那样工作

我正在使用web表单将用户输入存储到MySQL数据库中,使用$\u POST

我注意到,一旦
textarea
字段区域被读取,斜杠就会自动插入以转义某些字符

因为我需要在存储之前处理文本,所以我考虑过使用
stripslashes
,但是我发现如果使用日语或其他亚洲字符集,它可能会垃圾文本


是否有正确的方法安全地执行此任务(删除斜杠)?

在PHP设置中关闭。该功能已被弃用。

在PHP设置中关闭。该功能已被弃用。

如果您不想禁用magic quotes(即使它们在PHP 6.0中不再像在5.3中弃用的那样工作),也可以使用此代码

$txt = $_POST['txt'];
if(get_magic_quotes_gpc())
    $txt = stripslashes($txt);

这样,只有当您的PHP模块启用了magic quotes时才能启用stripslashes,否则将忽略它

如果您不想禁用magic quotes(即使它们在PHP 6.0中不再工作,因为它们在5.3中被弃用),您可以使用此代码

$txt = $_POST['txt'];
if(get_magic_quotes_gpc())
    $txt = stripslashes($txt);

这样,只有当PHP模块启用了魔引号时,才能启用stripslashes,或者忽略它

正如我所写的,stripslashes对于某些亚洲编码语言(如日语)似乎很危险……正如我所写的,stripslashes对于某些亚洲编码语言(如日语)似乎很危险……我已经签出了PHP.ini,看起来魔法引号被禁用了:
;魔术语录;传入GET/POST/Cookie数据的神奇引号。魔术_quotes_gpc=Off;运行时生成数据的魔引号,例如来自SQL、来自exec()等的数据。魔引号运行时=关闭;使用Sybase样式的魔引号(用“”而不是\'转义)。magic_quotes_sybase=Off
是的,这是PHP5.3中的默认设置,因为前面提到的magic quotes是不推荐使用的。在这种情况下,不应该在字符串上使用斜杠!Stipslash只有在启用了魔法引号的情况下才是必要的,而这正是我在anwser中发布的内容。如果启用了magic quotes,则将使用斜杠,否则不会使用斜杠。如果出于任何原因,您必须将代码移植到启用了magic quotes的服务器上,并且您不能或不允许禁用它们(即,因为它们会干扰其他脚本),那么我的解决方案仍然有效,而上面的解决方案则不能。我已签出php.ini,看起来magic quotes已禁用:
;魔术语录;传入GET/POST/Cookie数据的神奇引号。魔术_quotes_gpc=Off;运行时生成数据的魔引号,例如来自SQL、来自exec()等的数据。魔引号运行时=关闭;使用Sybase样式的魔引号(用“”而不是\'转义)。magic_quotes_sybase=Off
是的,这是PHP5.3中的默认设置,因为前面提到的magic quotes是不推荐使用的。在这种情况下,不应该在字符串上使用斜杠!Stipslash只有在启用了魔法引号的情况下才是必要的,而这正是我在anwser中发布的内容。如果启用了magic quotes,则将使用斜杠,否则不会使用斜杠。如果出于任何原因,您必须将代码移植到启用了魔引号的服务器上,并且您不能或不允许禁用它们(即,因为它们会干扰其他脚本),那么我的解决方案仍然可以工作,而上面的解决方案则无法工作。这是非常错误的。从你下面的评论中,你说你的魔术引号被禁用了,因此这个斜杠没有被“添加”。这正是您编码unicode字符的方式(不能在ASCII/iso中显示),这是非常错误的。从你下面的评论中,你说你的魔术引号被禁用了,因此这个斜杠没有被“添加”。这就是unicode字符的编码方式(不能以ASCII/iso格式显示)