From c5c4b858df5ce0576c81bca3b1bfc0c1c7fc20e7 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Wed, 12 Mar 2008 20:53:04 +0000 Subject: [PATCH] MFB: add request_order INI variable to control $_REQUEST content # if not set (default), variables_order still is used # request_order accepts G,P and C --- main/main.c | 1 + main/php_globals.h | 2 ++ main/php_variables.c | 8 +++++++- php.ini-dist | 6 ++++++ php.ini-recommended | 6 ++++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/main/main.c b/main/main.c index 419d922e5e..e1ded5d58a 100644 --- a/main/main.c +++ b/main/main.c @@ -529,6 +529,7 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("user_dir", NULL, PHP_INI_SYSTEM, OnUpdateString, user_dir, php_core_globals, core_globals) STD_PHP_INI_ENTRY("variables_order", "EGPCS", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateStringUnempty, variables_order, php_core_globals, core_globals) + STD_PHP_INI_ENTRY("request_order", NULL, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateString, request_order, php_core_globals, core_globals) STD_PHP_INI_ENTRY("error_append_string", NULL, PHP_INI_ALL, OnUpdateString, error_append_string, php_core_globals, core_globals) STD_PHP_INI_ENTRY("error_prepend_string", NULL, PHP_INI_ALL, OnUpdateString, error_prepend_string, php_core_globals, core_globals) diff --git a/main/php_globals.h b/main/php_globals.h index 0457e7ce0f..b37ea5f3ab 100644 --- a/main/php_globals.h +++ b/main/php_globals.h @@ -148,6 +148,8 @@ struct _php_core_globals { char *user_ini_filename; long user_ini_cache_ttl; + + char *request_order; }; diff --git a/main/php_variables.c b/main/php_variables.c index 60eb79806c..850db25e2c 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -1010,7 +1010,13 @@ static zend_bool php_auto_globals_create_request(char *name, uint name_len TSRML array_init(form_variables); INIT_PZVAL(form_variables); - for (p = PG(variables_order); p && *p; p++) { + if(PG(request_order) != NULL) { + p = PG(request_order); + } else { + p = PG(variables_order); + } + + for (; p && *p; p++) { switch (*p) { case 'g': case 'G': diff --git a/php.ini-dist b/php.ini-dist index 6099a3e003..a3dee362f7 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -360,6 +360,12 @@ track_errors = Off ; values override older values. variables_order = "EGPCS" +; This directive describes the order in which PHP registers GET, POST and Cookie +; variables into the _REQUEST array. Registration is done from left to right, +; newer values override older values. +; If this directive is not set, variables_order is used for _REQUEST contents. +; request_order = "GP" + ; This directive tells PHP whether to declare the argv&argc variables (that ; would contain the GET information). If you don't use these variables, you ; should turn it off for increased performance. diff --git a/php.ini-recommended b/php.ini-recommended index 35584b13e4..ef5c80ba0e 100644 --- a/php.ini-recommended +++ b/php.ini-recommended @@ -399,6 +399,12 @@ track_errors = Off ; values override older values. variables_order = "GPCS" +; This directive describes the order in which PHP registers GET, POST and Cookie +; variables into the _REQUEST array. Registration is done from left to right, +; newer values override older values. +; If this directive is not set, variables_order is used for _REQUEST contents. +request_order = "GP" + ; This directive tells PHP whether to declare the argv&argc variables (that ; would contain the GET information). If you don't use these variables, you ; should turn it off for increased performance. -- 2.40.0