Php HTML表单-安全删除斜杠
我正在使用web表单将用户输入存储到MySQL数据库中,使用$\u POST 我注意到,一旦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中弃用的那样工作
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格式显示)