summaryrefslogtreecommitdiff
path: root/ext/session/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/session/session.c')
-rw-r--r--ext/session/session.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 9396d0dce9..79483d15f2 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -65,6 +65,7 @@ function_entry session_functions[] = {
PHP_FE(session_decode, NULL)
PHP_FE(session_register, NULL)
PHP_FE(session_unregister, NULL)
+ PHP_FE(session_is_registered, NULL)
PHP_FE(session_encode, NULL)
PHP_FE(session_start, NULL)
PHP_FE(session_destroy, NULL)
@@ -473,6 +474,32 @@ PHP_FUNCTION(session_unregister)
}
/* }}} */
+
+/* {{{ proto bool session_is_registered(string varname)
+ checks if a variable is registered in session */
+PHP_FUNCTION(session_is_registered)
+{
+ pval *p_name;
+ pval *p_var;
+ int ac = ARG_COUNT(ht);
+ PSLS_FETCH();
+
+ if(ac != 1 || getParameters(ht, ac, &p_name) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ convert_to_string(p_name);
+
+ if (zend_hash_find(&PS(vars), p_name->value.str.val, p_name->value.str.len+1,
+ (void **)&p_var) == SUCCESS) {
+ RETURN_TRUE;
+ } else {
+ RETURN_FALSE;
+ }
+}
+/* }}} */
+
+
/* {{{ proto string session_encode()
serializes the current setup and returns the serialized representation */
PHP_FUNCTION(session_encode)