diff --git a/extension/qfq/qfq/store/Store.php b/extension/qfq/qfq/store/Store.php index b4723ee3bdfac729ed4fbf8e6e7771ce2f933b99..c4bee36d3ad5a4cb9c01ee36ff4f464852be76dd 100644 --- a/extension/qfq/qfq/store/Store.php +++ b/extension/qfq/qfq/store/Store.php @@ -445,19 +445,24 @@ class Store { } while ($useStores !== false) { - $store = substr($useStores, 0, 1); // next store + + $finalKey = $key; + if ($store == STORE_LDAP) { + $finalKey = strtolower($key); // in STORE_LDAP all keys are lowercase + } + $foundInStore = $store; $useStores = substr($useStores, 1); // shift left remaining stores - if (!isset(self::$raw[$store][$key])) { + if (!isset(self::$raw[$store][$finalKey])) { switch ($store) { case STORE_ZERO: return 0; case STORE_EMPTY: return ''; case STORE_VAR: - if ($key === VAR_RANDOM) { + if ($finalKey === VAR_RANDOM) { return Support::randomAlphaNum(RANDOM_LENGTH); } else { continue 2; // no value provided, continue with while loop @@ -469,7 +474,7 @@ class Store { } } - $rawVal = isset(self::$raw[$store][$key]) ? self::$raw[$store][$key] : null; + $rawVal = isset(self::$raw[$store][$finalKey]) ? self::$raw[$store][$finalKey] : null; if (self::$sanitizeStore[$store] && $sanitizeClass != '') { if ($sanitizeClass == SANITIZE_ALLOW_PATTERN || $sanitizeClass == SANITIZE_ALLOW_MIN_MAX || $sanitizeClass == SANITIZE_ALLOW_MIN_MAX_DATE) { // We do not have any pattern or min|max values at this point. For those who be affected, they already checked earlier. So set 'no check'