?? ??? ????, 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
--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--
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';
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)
--SKIPIF--
<?php die('skip');/* RG removed */ ?>
--INI--
-register_long_arrays=1
session.use_cookies=0
session.cache_limiter=
session.bug_compat_42=1
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
session_start();
$c = $_SESSION['c'];
var_dump($c);
-var_dump($HTTP_SESSION_VARS);
+var_dump($_SESSION);
session_destroy();
?>
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
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'];
@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
session_start();
$c = $_SESSION['c'];
var_dump($c);
-var_dump($HTTP_SESSION_VARS);
+var_dump($_SESSION);
session_destroy();
?>
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();
?>
--SKIPIF--
<?php include('skipif.inc'); ?>
--INI--
-register_long_arrays=1
session.use_cookies=0
session.cache_limiter=
session.bug_compat_42=1
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--
error_reporting(E_ALL);
@session_start();
-$HTTP_SESSION_VARS["test"] = 1;
+$_SESSION["test"] = 1;
@session_write_close();
print "I live\n";
?>
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)
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()
/* }}} */
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();
zend_bool expose_php;
- zend_bool register_long_arrays;
zend_bool register_argc_argv;
zend_bool auto_globals_jit;
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;
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 */
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 */
}
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 */
}