Dropped register_long_arrays, added E_CORE for all dropped setting

This commit is contained in:
Dmitry Stogov 2006-03-16 09:44:42 +00:00
parent 37ab9aa474
commit 22055cb8fd
12 changed files with 63 additions and 74 deletions

1
NEWS
View file

@ -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

View file

@ -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--
<?php
include(dirname(__FILE__).'/../../ext/session/tests/skipif.inc');
?>
<?php include(dirname(__FILE__).'/../../ext/session/tests/skipif.inc'); ?>
--FILE--
<?php
$HTTP_SESSION_VARS = "ok\n";
echo $HTTP_SESSION_VARS;
$_SESSION = "ok\n";
echo $_SESSION;
session_start();
echo $HTTP_SESSION_VARS;
echo $_SESSION;
echo "\nok\n";
?>
--EXPECTF--

View file

@ -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--
<?php
$str = 'some \'$sample\' text';

View file

@ -466,13 +466,7 @@ static void php_session_track_init(TSRMLS_D)
array_init(session_vars);
PS(http_session_vars) = session_vars;
if (PG(register_long_arrays)) {
ZEND_SET_GLOBAL_VAR_WITH_LENGTH("HTTP_SESSION_VARS", sizeof("HTTP_SESSION_VARS"), PS(http_session_vars), 2, 1);
ZEND_SET_GLOBAL_VAR_WITH_LENGTH("_SESSION", sizeof("_SESSION"), PS(http_session_vars), 2, 1);
}
else {
ZEND_SET_GLOBAL_VAR_WITH_LENGTH("_SESSION", sizeof("_SESSION"), PS(http_session_vars), 1, 0);
}
ZEND_SET_GLOBAL_VAR_WITH_LENGTH("_SESSION", sizeof("_SESSION"), PS(http_session_vars), 1, 0);
}
static char *php_session_encode(int *newlen TSRMLS_DC)

View file

@ -3,7 +3,6 @@ bug compatibility: unset($c) with enabled register_globals
--SKIPIF--
<?php die('skip');/* RG removed */ ?>
--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();
?>

View file

@ -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();
?>

View file

@ -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();
?>

View file

@ -3,7 +3,6 @@ unset($_SESSION["name"]); should work with register_globals=off
--SKIPIF--
<?php include('skipif.inc'); ?>
--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--

View file

@ -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";
?>

View file

@ -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();

View file

@ -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;

View file

@ -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 */
}