summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2008-03-12 20:24:45 +0000
committerStanislav Malyshev <stas@php.net>2008-03-12 20:24:45 +0000
commita9fe1010d2837cb2a02ef70156718603c3693cbd (patch)
tree2c09dc45fcc8ae2735e14f657817d849640c11fd
parent5076296d8cf5f592a66d309fdd6747096ffc4dae (diff)
downloadphp-git-a9fe1010d2837cb2a02ef70156718603c3693cbd.tar.gz
[DOC] 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
-rw-r--r--main/main.c1
-rw-r--r--main/php_globals.h2
-rw-r--r--main/php_variables.c8
-rw-r--r--php.ini-dist6
-rw-r--r--php.ini-recommended6
5 files changed, 22 insertions, 1 deletions
diff --git a/main/main.c b/main/main.c
index 7098a9aaeb..3f56d17568 100644
--- a/main/main.c
+++ b/main/main.c
@@ -436,6 +436,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 fec2e94bfd..0c9ccff5df 100644
--- a/main/php_globals.h
+++ b/main/php_globals.h
@@ -162,6 +162,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 650b5f0219..274230fe41 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -835,7 +835,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 4103409f3e..2186697eb3 100644
--- a/php.ini-dist
+++ b/php.ini-dist
@@ -413,6 +413,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"
+
; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don't want to clutter your scripts' global scope
; with user data. This makes most sense when coupled with track_vars - in which
diff --git a/php.ini-recommended b/php.ini-recommended
index 5b48c8aa68..057b4a1706 100644
--- a/php.ini-recommended
+++ b/php.ini-recommended
@@ -464,6 +464,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"
+
; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don't want to clutter your scripts' global scope
; with user data. This makes most sense when coupled with track_vars - in which