diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2019-10-07 15:00:36 +0300 |
---|---|---|
committer | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2019-10-07 15:00:36 +0300 |
commit | 2bb086802e4623a8543080883342ed4cf3c45eee (patch) | |
tree | 8d28e27255ad616772437831dc15de05de70da1e /redis_session.c | |
parent | 7c6c43a6ac81b0f73c55892e675c1875dcd0a2c8 (diff) |
Issue #1631
Diffstat (limited to 'redis_session.c')
-rw-r--r-- | redis_session.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/redis_session.c b/redis_session.c index 0bffc0d6..33ccedee 100644 --- a/redis_session.c +++ b/redis_session.c @@ -408,13 +408,23 @@ PS_OPEN_FUNC(redis) /* parse parameters */ if (url->query != NULL) { + char *query; array_init(¶ms); #if (PHP_VERSION_ID < 70300) - sapi_module.treat_data(PARSE_STRING, estrdup(url->query), ¶ms); + if (url->fragment != NULL) { + spprintf(&query, 0, "%s#%s", url->query, url->fragment); + } else { + query = estrdup(url->query); + } #else - sapi_module.treat_data(PARSE_STRING, estrndup(ZSTR_VAL(url->query), ZSTR_LEN(url->query)), ¶ms); + if (url->fragment != NULL) { + spprintf(&query, 0, "%s#%s", ZSTR_VAL(url->query), ZSTR_VAL(url->fragment)); + } else { + query = estrndup(ZSTR_VAL(url->query), ZSTR_LEN(url->query)); + } #endif + sapi_module.treat_data(PARSE_STRING, query, ¶ms); if ((param = zend_hash_str_find(Z_ARRVAL(params), "weight", sizeof("weight") - 1)) != NULL) { weight = zval_get_long(param); |