Php 我是否应该始终对_POST _GET和_COOKIE变量使用stripslashes

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没有添加斜杠,总是删除斜杠会导致错误的数据

当我读到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没有添加斜杠,总是删除斜杠会导致错误的数据

我对你有同样的困惑

目前,
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_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()。不幸的是,我没有对该服务器上的配置文件的写入权限。我自己编写了一个函数来检查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()。