From 22055cb8fddf93085b518a5c21370c26c0a1cb2c Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 16 Mar 2006 09:44:42 +0000 Subject: [PATCH] Dropped register_long_arrays, added E_CORE for all dropped setting --- NEWS | 1 + Zend/tests/unset_cv05.phpt | 13 ++++--------- ext/pcre/tests/bug33200.phpt | 2 -- ext/session/session.c | 8 +------- ext/session/tests/007.phpt | 13 ++++++------- ext/session/tests/008-php4.2.3.phpt | 13 ++++++------- ext/session/tests/008.phpt | 12 ++++++------ ext/session/tests/009.phpt | 19 +++++++++--------- ext/session/tests/016.phpt | 2 +- main/main.c | 23 +++++++++++++++++++++- main/php_globals.h | 1 - main/php_variables.c | 30 +++++++---------------------- 12 files changed, 63 insertions(+), 74 deletions(-) diff --git a/NEWS b/NEWS index 20e6153184..905b6ab408 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ PHP NEWS ?? ??? ????, PHP 6.0 - Unicode support. (Andrei, Dmitry, et al) - Dropped safe_mode support (Ilia, Andi) +- Dropped register_long_arrays (Dmitry) - Droped register_globals support (Pierre) - session_register, session_unregister and session_is_registered removed they depend on register_globals diff --git a/Zend/tests/unset_cv05.phpt b/Zend/tests/unset_cv05.phpt index bc023c4e26..407e73d312 100644 --- a/Zend/tests/unset_cv05.phpt +++ b/Zend/tests/unset_cv05.phpt @@ -1,21 +1,16 @@ --TEST-- unset() CV 5 (indirect unset() of global variable in session_start()) --INI-- -register_long_arrays=1 session.auto_start=0 session.save_handler=files --SKIPIF-- - + --FILE-- --EXPECTF-- diff --git a/ext/pcre/tests/bug33200.phpt b/ext/pcre/tests/bug33200.phpt index 334e90e865..905fbd908e 100644 --- a/ext/pcre/tests/bug33200.phpt +++ b/ext/pcre/tests/bug33200.phpt @@ -2,8 +2,6 @@ Bug #33200 (magic_quotes_sybase = On makes 'e' modifier misbehave) --SKIPIF-- die('skip magic_quotes removed'); ---INI-- -magic_quotes_sybase=1 --FILE-- --INI-- -register_long_arrays=1 session.use_cookies=0 session.cache_limiter= session.bug_compat_42=1 @@ -19,26 +18,26 @@ session_id("abtest"); session_start(); session_destroy(); -### Phase 2 $HTTP_SESSION_VARS["c"] does not contain any value +### Phase 2 $_SESSION["c"] does not contain any value session_id("abtest"); $_SESSION['c'] = $c; unset($c); $c = 3.14; session_write_close(); -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); -### Phase 3 $HTTP_SESSION_VARS["c"] is set +### Phase 3 $_SESSION["c"] is set session_start(); $c = $_SESSION['c']; var_dump($c); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); unset($c); $c = 2.78; session_write_close(); -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); ### Phase 4 final @@ -46,7 +45,7 @@ unset($c); session_start(); $c = $_SESSION['c']; var_dump($c); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); session_destroy(); ?> diff --git a/ext/session/tests/008-php4.2.3.phpt b/ext/session/tests/008-php4.2.3.phpt index 96c46dccf2..1d4bb20899 100644 --- a/ext/session/tests/008-php4.2.3.phpt +++ b/ext/session/tests/008-php4.2.3.phpt @@ -6,7 +6,6 @@ die("skip, no more RG and session_register"); if (version_compare(PHP_VERSION,"4.2.3-dev", "<")) die("skip this is for PHP >= 4.2.3"); ?> --INI-- -register_long_arrays=1 session.use_cookies=0 session.cache_limiter= session.bug_compat_42=1 @@ -25,7 +24,7 @@ session_id("abtest"); session_start(); session_destroy(); -### Phase 2 $HTTP_SESSION_VARS["c"] does not contain any value +### Phase 2 $_SESSION["c"] does not contain any value session_id("abtest"); $_SESSION['c'] = NULL; $c = $_SESSION['c']; @@ -35,18 +34,18 @@ $c = 3.14; @session_write_close(); // this generates an E_WARNING which will be printed // by $php_errormsg so we can use "@" here. ANY further message IS an error. echo $php_errormsg."\n"; -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); -### Phase 3 $HTTP_SESSION_VARS["c"] is set +### Phase 3 $_SESSION["c"] is set session_start(); $c = $_SESSION['c']; -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); unset($c); $c = 2.78; session_write_close(); -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); ### Phase 4 final @@ -54,7 +53,7 @@ unset($c); session_start(); $c = $_SESSION['c']; var_dump($c); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); session_destroy(); ?> diff --git a/ext/session/tests/008.phpt b/ext/session/tests/008.phpt index cd88f79d25..60c10a5297 100644 --- a/ext/session/tests/008.phpt +++ b/ext/session/tests/008.phpt @@ -19,31 +19,31 @@ session_id("abtest"); session_start(); session_destroy(); -### Phase 2 $HTTP_SESSION_VARS["c"] does not contain any value +### Phase 2 $_SESSION["c"] does not contain any value session_id("abtest"); session_register("c"); var_dump($c); unset($c); $c = 3.14; session_write_close(); -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); -### Phase 3 $HTTP_SESSION_VARS["c"] is set +### Phase 3 $_SESSION["c"] is set session_start(); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); unset($c); $c = 2.78; session_write_close(); -unset($HTTP_SESSION_VARS); +unset($_SESSION); unset($c); ### Phase 4 final session_start(); var_dump($c); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); session_destroy(); ?> diff --git a/ext/session/tests/009.phpt b/ext/session/tests/009.phpt index 6c3eee1dbb..1d9ff7e863 100644 --- a/ext/session/tests/009.phpt +++ b/ext/session/tests/009.phpt @@ -3,7 +3,6 @@ unset($_SESSION["name"]); should work with register_globals=off --SKIPIF-- --INI-- -register_long_arrays=1 session.use_cookies=0 session.cache_limiter= session.bug_compat_42=1 @@ -20,25 +19,25 @@ session_id("abtest"); session_start(); session_destroy(); -### Phase 2 $HTTP_SESSION_VARS["c"] does not contain any value +### Phase 2 $_SESSION["c"] does not contain any value session_id("abtest"); session_start(); -var_dump($HTTP_SESSION_VARS); -$HTTP_SESSION_VARS["name"] = "foo"; -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); +$_SESSION["name"] = "foo"; +var_dump($_SESSION); session_write_close(); -### Phase 3 $HTTP_SESSION_VARS["c"] is set +### Phase 3 $_SESSION["c"] is set session_start(); -var_dump($HTTP_SESSION_VARS); -unset($HTTP_SESSION_VARS["name"]); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); +unset($_SESSION["name"]); +var_dump($_SESSION); session_write_close(); ### Phase 4 final session_start(); -var_dump($HTTP_SESSION_VARS); +var_dump($_SESSION); session_destroy(); ?> --EXPECT-- diff --git a/ext/session/tests/016.phpt b/ext/session/tests/016.phpt index 21cd0ec929..e116cea306 100644 --- a/ext/session/tests/016.phpt +++ b/ext/session/tests/016.phpt @@ -13,7 +13,7 @@ session.serialize_handler=php error_reporting(E_ALL); @session_start(); -$HTTP_SESSION_VARS["test"] = 1; +$_SESSION["test"] = 1; @session_write_close(); print "I live\n"; ?> diff --git a/main/main.c b/main/main.c index e91ec291b5..2e7fa27e1e 100644 --- a/main/main.c +++ b/main/main.c @@ -372,7 +372,6 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("output_buffering", "0", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateLong, output_buffering, php_core_globals, core_globals) STD_PHP_INI_ENTRY("output_handler", NULL, PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateString, output_handler, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("register_argc_argv", "1", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateBool, register_argc_argv, php_core_globals, core_globals) - STD_PHP_INI_BOOLEAN("register_long_arrays", "1", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateBool, register_long_arrays, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("auto_globals_jit", "1", PHP_INI_PERDIR|PHP_INI_SYSTEM, OnUpdateBool, auto_globals_jit, php_core_globals, core_globals) STD_PHP_INI_BOOLEAN("short_open_tag", DEFAULT_SHORT_OPEN_TAG, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, short_tags, zend_compiler_globals, compiler_globals) STD_PHP_INI_BOOLEAN("sql.safe_mode", "0", PHP_INI_SYSTEM, OnUpdateBool, sql_safe_mode, php_core_globals, core_globals) @@ -425,6 +424,7 @@ PHP_INI_BEGIN() STD_PHP_INI_BOOLEAN("always_populate_raw_post_data", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, always_populate_raw_post_data, php_core_globals, core_globals) STD_PHP_INI_ENTRY("realpath_cache_size", "16K", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_size_limit, virtual_cwd_globals, cwd_globals) STD_PHP_INI_ENTRY("realpath_cache_ttl", "120", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_ttl, virtual_cwd_globals, cwd_globals) + PHP_INI_END() /* }}} */ @@ -1569,6 +1569,27 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod return FAILURE; } + /* Check for deprecated directives */ + { + static const char *directives[] = { + "register_globals", + "register_long_arrays", + "safe_mode", + "magic_quotes_gpc", + "magic_quotes_runtime", + "magic_quotes_sybase", + NULL}; + const char **p = directives; + long val; + + while (*p) { + if (cfg_get_long(*p, &val) == SUCCESS && val) { + zend_error(E_CORE_ERROR, "Directive '%s' is not longer supported in PHP-6 and above", *p); + } + ++p; + } + } + /* Register PHP core ini entries */ REGISTER_INI_ENTRIES(); diff --git a/main/php_globals.h b/main/php_globals.h index 74b6c12f63..67a9f43e5e 100644 --- a/main/php_globals.h +++ b/main/php_globals.h @@ -108,7 +108,6 @@ struct _php_core_globals { zend_bool expose_php; - zend_bool register_long_arrays; zend_bool register_argc_argv; zend_bool auto_globals_jit; diff --git a/main/php_variables.c b/main/php_variables.c index 153c2d3fe3..10888ec5f1 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -818,20 +818,18 @@ int php_hash_environment(TSRMLS_D) unsigned char _gpc_flags[5] = {0, 0, 0, 0, 0}; zval *dummy_track_vars_array = NULL; zend_bool initialized_dummy_track_vars_array=0; - zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_long_arrays) && !PG(register_argc_argv)); + zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_argc_argv)); struct auto_global_record { char *name; uint name_len; - char *long_name; - uint long_name_len; zend_bool jit_initialization; } auto_global_records[] = { - { "_POST", sizeof("_POST"), "HTTP_POST_VARS", sizeof("HTTP_POST_VARS"), 0 }, - { "_GET", sizeof("_GET"), "HTTP_GET_VARS", sizeof("HTTP_GET_VARS"), 0 }, - { "_COOKIE", sizeof("_COOKIE"), "HTTP_COOKIE_VARS", sizeof("HTTP_COOKIE_VARS"), 0 }, - { "_SERVER", sizeof("_SERVER"), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), 1 }, - { "_ENV", sizeof("_ENV"), "HTTP_ENV_VARS", sizeof("HTTP_ENV_VARS"), 1 }, - { "_FILES", sizeof("_FILES"), "HTTP_POST_FILES", sizeof("HTTP_POST_FILES"), 0 }, + { "_POST", sizeof("_POST"), 0 }, + { "_GET", sizeof("_GET"), 0 }, + { "_COOKIE", sizeof("_COOKIE"), 0 }, + { "_SERVER", sizeof("_SERVER"), 1 }, + { "_ENV", sizeof("_ENV"), 1 }, + { "_FILES", sizeof("_FILES"), 0 }, }; size_t num_track_vars = sizeof(auto_global_records)/sizeof(struct auto_global_record); size_t i; @@ -906,10 +904,6 @@ int php_hash_environment(TSRMLS_D) PG(http_globals)[i]->refcount++; zend_hash_update(&EG(symbol_table), auto_global_records[i].name, auto_global_records[i].name_len, &PG(http_globals)[i], sizeof(zval *), NULL); - if (PG(register_long_arrays)) { - zend_hash_update(&EG(symbol_table), auto_global_records[i].long_name, auto_global_records[i].long_name_len, &PG(http_globals)[i], sizeof(zval *), NULL); - PG(http_globals)[i]->refcount++; - } } /* Create _REQUEST */ @@ -940,11 +934,6 @@ static zend_bool php_auto_globals_create_server(char *name, uint name_len TSRMLS zend_hash_update(&EG(symbol_table), name, name_len + 1, &PG(http_globals)[TRACK_VARS_SERVER], sizeof(zval *), NULL); PG(http_globals)[TRACK_VARS_SERVER]->refcount++; - if (PG(register_long_arrays)) { - zend_hash_update(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), &PG(http_globals)[TRACK_VARS_SERVER], sizeof(zval *), NULL); - PG(http_globals)[TRACK_VARS_SERVER]->refcount++; - } - return 0; /* don't rearm */ } @@ -966,11 +955,6 @@ static zend_bool php_auto_globals_create_env(char *name, uint name_len TSRMLS_DC zend_hash_update(&EG(symbol_table), name, name_len + 1, &PG(http_globals)[TRACK_VARS_ENV], sizeof(zval *), NULL); PG(http_globals)[TRACK_VARS_ENV]->refcount++; - if (PG(register_long_arrays)) { - zend_hash_update(&EG(symbol_table), "HTTP_ENV_VARS", sizeof("HTTP_ENV_VARS"), &PG(http_globals)[TRACK_VARS_ENV], sizeof(zval *), NULL); - PG(http_globals)[TRACK_VARS_ENV]->refcount++; - } - return 0; /* don't rearm */ } -- 2.50.1