Php 我是否应该始终对_POST _GET和_COOKIE变量使用stripslashes
当我读到PHP中的函数Php 我是否应该始终对_POST _GET和_COOKIE变量使用stripslashes,php,magic-quotes-gpc,Php,Magic Quotes Gpc,当我读到PHP中的函数get\u magic\u quotes\u gpc()时,我真的很困惑 到处都有人说该函数已被弃用() 但是PHP5.3中的默认行为是什么?我过去经常检查,如果magic\u quotes\u gpc,如果是这样的话,就在我的脚本开始的时候删除所有的斜杠,包括所有POST,GET和COOKIE变量,这样我就不会感到困惑 但是如果我不应该使用get\u magic\u quotes\u gpc()检查添加的斜杠,那么如果PHP5.3没有添加斜杠,总是删除斜杠会导致错误的数据
get\u magic\u quotes\u gpc()
时,我真的很困惑
到处都有人说该函数已被弃用()
但是PHP5.3中的默认行为是什么?我过去经常检查,如果magic\u quotes\u gpc
,如果是这样的话,就在我的脚本开始的时候删除所有的斜杠,包括所有POST
,GET
和COOKIE
变量,这样我就不会感到困惑
但是如果我不应该使用get\u magic\u quotes\u gpc()
检查添加的斜杠,那么如果PHP5.3没有添加斜杠,总是删除斜杠会导致错误的数据
我对你有同样的困惑
目前,magic\u quotes\u gpc
在我的服务器(PHP5.2.17)上,所以我需要删除斜杠。但是我应该如何处理这个问题,以便为将来的PHP版本做好准备呢
我可以在脚本开始时的运行时设置默认值吗?但是默认值是什么?不推荐使用
get\u magic\u quotes\u gpc
函数,不推荐使用的是magic\u quotes\u gpc
config设置
解决方案是不要在您自己的服务器上使用magic\u quotes\u gpc
config设置,如果您想编写健壮的代码,在启用了不推荐的magic\u gpc
设置的服务器上运行,还可以使用get\u magic\u quotes\u gpc
换言之:
- 在配置中关闭
magic\u quotes\u gpc
- 无论当前在何处使用
,如果stripslashes
get\u magic\u quotes\u gpc()==1,则将其更改为仅调用
stripslashes
- 不推荐使用
get\u magic\u quotes\u gpc
函数,不推荐使用的是magic\u quotes\u gpc
配置设置
解决方案是不要在您自己的服务器上使用magic\u quotes\u gpc
config设置,如果您想编写健壮的代码,在启用了不推荐的magic\u gpc
设置的服务器上运行,还可以使用get\u magic\u quotes\u gpc
换言之:
- 在配置中关闭
magic\u quotes\u gpc
- 无论当前在何处使用
,如果stripslashes
get\u magic\u quotes\u gpc()==1,则将其更改为仅调用
stripslashes
magic\u quotes\u gpc
,否则添加斜杠不是默认行为。您实际上不需要编写自己版本的get\u magic\u quotes\u gpc
,它并没有被弃用。我开始使用函数“filter\u input\u array()”。似乎此函数会自动删除值中的斜杠。我真的不明白上面给出的警告文字。删除斜杠是否是“清理过滤器”的默认行为?为什么数组中的斜杠没有删除?例如,
将名称[3][作为输出提供给\“ll]:“
。因此,对于值,删除斜线,但对于键不删除斜线。但是我在PHP手册中找不到这种行为的描述,@Sven我不确定,我没有太多地使用filter\u输入
之类的东西。。。我通常按类型转换或正则表达式过滤内容。尽管我认为可能还需要对以前使用addslashes()转换的字符串使用stripslashes()。不幸的是,我没有对该服务器上的配置文件的写入权限。我自己编写了一个函数来检查magic_quotes_gpc()。但是你说添加斜杠是PHP>5.3中的默认行为?你对此有参考吗?没有,除非启用了magic\u quotes\u gpc
,否则添加斜杠不是默认行为。您实际上不需要编写自己版本的get\u magic\u quotes\u gpc
,它并没有被弃用。我开始使用函数“filter\u input\u array()”。似乎此函数会自动删除值中的斜杠。我真的不明白上面给出的警告文字。删除斜杠是否是“清理过滤器”的默认行为?为什么数组中的斜杠没有删除?例如,
将名称[3][作为输出提供给\“ll]:“
。因此,对于值,删除斜线,但对于键不删除斜线。但是我在PHP手册中找不到这种行为的描述,@Sven我不确定,我没有太多地使用filter\u输入
之类的东西。。。我通常通过类型转换或正则表达式来过滤内容,但我认为可能还需要对以前使用addslashes()转换的字符串使用stripslashes()。