我的 php.ini 是这样设置的:variables_order = "EGPCS"
request_order =request_order 留空的话不是会使用 variables_order 的值吗?

解决方案 »

  1.   

     request_order =GP
    不是默认的get和post,设置为空干嘛?
      

  2.   


    xxx.php?aaa=bbbrequest_order 为空的时候 $_REQUEST 是空数组,
    request_order = "GP" 的时候 $_REQUEST 才有内容。
      

  3.   


    xxx.php?aaa=bbbrequest_order 为空的时候 $_REQUEST 是空数组,
    request_order = "GP" 的时候 $_REQUEST 才有内容。
    这就对了,看request_order 的解释,它设置的是$_REQUEST变量的设置和覆盖顺序。如果为空,也就是$_REQUEST不包含P(Post),G(Get)和C(Cookie)变量了,自然就是空了
      

  4.   


    xxx.php?aaa=bbbrequest_order 为空的时候 $_REQUEST 是空数组,
    request_order = "GP" 的时候 $_REQUEST 才有内容。
    这就对了,看request_order 的解释,它设置的是$_REQUEST变量的设置和覆盖顺序。如果为空,也就是$_REQUEST不包含P(Post),G(Get)和C(Cookie)变量了,自然就是空了那 php 的下面这句话是什么意思:If this directive is not set, variables_order is used for $_REQUEST contents.不是说留空就会使用 variables_order 的值吗?还有 php.ini 里面说的 : 626 ; This directive determines which super global data (G,P,C,E & S) should
     627 ; be registered into the super global array REQUEST. If so, it also determines
     628 ; the order in which that data is registered. The values for this directive are
     629 ; specified in the same manner as the variables_order directive, EXCEPT one.
     630 ; Leaving this value empty will cause PHP to use the value set in the
     631 ; variables_order directive. It does not mean it will leave the super globals
     632 ; array REQUEST empty.
     633 ; Default Value: None
     634 ; Development Value: "GP"
     635 ; Production Value: "GP"
     636 ; http://php.net/request-order
     637 request_order = "GP"难道我理解错了吗?我的英文水平是比较差
      

  5.   


    xxx.php?aaa=bbbrequest_order 为空的时候 $_REQUEST 是空数组,
    request_order = "GP" 的时候 $_REQUEST 才有内容。
    这就对了,看request_order 的解释,它设置的是$_REQUEST变量的设置和覆盖顺序。如果为空,也就是$_REQUEST不包含P(Post),G(Get)和C(Cookie)变量了,自然就是空了那 php 的下面这句话是什么意思:If this directive is not set, variables_order is used for $_REQUEST contents.不是说留空就会使用 variables_order 的值吗?还有 php.ini 里面说的 : 626 ; This directive determines which super global data (G,P,C,E & S) should
     627 ; be registered into the super global array REQUEST. If so, it also determines
     628 ; the order in which that data is registered. The values for this directive are
     629 ; specified in the same manner as the variables_order directive, EXCEPT one.
     630 ; Leaving this value empty will cause PHP to use the value set in the
     631 ; variables_order directive. It does not mean it will leave the super globals
     632 ; array REQUEST empty.
     633 ; Default Value: None
     634 ; Development Value: "GP"
     635 ; Production Value: "GP"
     636 ; http://php.net/request-order
     637 request_order = "GP"难道我理解错了吗?我的英文水平是比较差
    刚测试了。variables_order = "GP"
    或者variables_order = "GPCS"
    request_order = 
    的情况下确实如手册所说,request_order的值会使用variables_order的值。
    php 5.2.17.比较纳闷的是,记得changelog中request_order是在5.3中引入的,不知为何5.2的配置中也有该配置项
      

  6.   


    xxx.php?aaa=bbbrequest_order 为空的时候 $_REQUEST 是空数组,
    request_order = "GP" 的时候 $_REQUEST 才有内容。
    这就对了,看request_order 的解释,它设置的是$_REQUEST变量的设置和覆盖顺序。如果为空,也就是$_REQUEST不包含P(Post),G(Get)和C(Cookie)变量了,自然就是空了那 php 的下面这句话是什么意思:If this directive is not set, variables_order is used for $_REQUEST contents.不是说留空就会使用 variables_order 的值吗?还有 php.ini 里面说的 : 626 ; This directive determines which super global data (G,P,C,E & S) should
     627 ; be registered into the super global array REQUEST. If so, it also determines
     628 ; the order in which that data is registered. The values for this directive are
     629 ; specified in the same manner as the variables_order directive, EXCEPT one.
     630 ; Leaving this value empty will cause PHP to use the value set in the
     631 ; variables_order directive. It does not mean it will leave the super globals
     632 ; array REQUEST empty.
     633 ; Default Value: None
     634 ; Development Value: "GP"
     635 ; Production Value: "GP"
     636 ; http://php.net/request-order
     637 request_order = "GP"难道我理解错了吗?我的英文水平是比较差
    刚测试了。variables_order = "GP"
    或者variables_order = "GPCS"
    request_order = 
    的情况下确实如手册所说,request_order的值会使用variables_order的值。
    php 5.2.17.比较纳闷的是,记得changelog中request_order是在5.3中引入的,不知为何5.2的配置中也有该配置项但是我用外国的服务器 php 5.3.24 和本地的 php 5.4.4 测试的结果都是 request_order 留空并不会使用 variables_order 的值,而是直接把 $_REQUEST 留空了。request_order 的确是 5.3 才引进的,会不会是你设置的 request_order 压根没起作用?5.3之前可能 $_REQUEST 直接就使用的 variables_order。
      

  7.   

    对于 $_REQUEST 的处理,php5.3 的早期版本是有问题的
    至少在 php 5.3.6 中,如果没有传入数据,则 $_REQUEST 是未定义的,而不是仅仅为空
    不太清楚这个问题是在哪个版本中被纠正的
    It does not mean it will leave the super globals array REQUEST empty.
      

  8.   


    我测试的两个版本是空数组,不是未定义,
    刚刚看了 ChangeLog 也没有提到这个,照这么说php文档和php.ini上面说的都是有错误的咯?