diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/session/session.c | 1 | ||||
-rw-r--r-- | ext/session/tests/bug72940.phpt | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index 8e5caf9bb3..a47e78cdb2 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1633,6 +1633,7 @@ PHPAPI void php_session_start(void) /* {{{ */ if (Z_TYPE_P(data) == IS_ARRAY && (ppid = zend_hash_str_find(Z_ARRVAL_P(data), PS(session_name), lensess))) { ppid2sid(ppid); PS(send_cookie) = 0; + PS(define_sid) = 0; } } diff --git a/ext/session/tests/bug72940.phpt b/ext/session/tests/bug72940.phpt new file mode 100644 index 0000000000..5f3c790405 --- /dev/null +++ b/ext/session/tests/bug72940.phpt @@ -0,0 +1,35 @@ +--TEST-- +Bug #72940 - SID always defined +--INI-- +error_reporting=-1 +session.save_path= +session.name=PHPSESSID +--SKIPIF-- +<?php include('skipif.inc'); ?> +--COOKIE-- +PHPSESSID=bug72940test +--GET-- +PHPSESSID=bug72940get +--FILE-- +<?php +ob_start(); + +ini_set('session.use_strict_mode', 0); +ini_set('session.use_cookies', 1); +ini_set('session.use_only_cookies', 0); +session_start(); +var_dump(session_id(), SID); +session_destroy(); + +ini_set('session.use_strict_mode', 0); +ini_set('session.use_cookies', 0); +ini_set('session.use_only_cookies', 0); +session_start(); +var_dump(session_id(), SID); +session_destroy(); +?> +--EXPECTF-- +string(12) "bug72940test" +string(0) "" +string(11) "bug72940get" +string(21) "PHPSESSID=bug72940get" |