diff options
-rw-r--r-- | engine/lib/actions.php | 25 | ||||
-rw-r--r-- | engine/lib/input.php | 17 |
2 files changed, 21 insertions, 21 deletions
diff --git a/engine/lib/actions.php b/engine/lib/actions.php index eafb42155..bd3bdb80a 100644 --- a/engine/lib/actions.php +++ b/engine/lib/actions.php @@ -21,6 +21,9 @@ function action($action, $forwarder = "") { global $CONFIG; + // set GET params + elgg_set_input_from_uri(); + // @todo REMOVE THESE EXCEPTIONS IN 1.8. // These are only to provide a way to disable plugins that overwrite core // UI without tokens. (And for installation because of session_id problems) @@ -31,27 +34,7 @@ function action($action, $forwarder = "") { if (!in_array($action, $exceptions)) { // All actions require a token. - if (!action_gatekeeper()) { - $message = "ERROR: $action was called without an action token and has been ignored. This is usually caused by outdated 3rd party plugins."; - - error_log($message); - register_error($message); - forward(); - } - } - - // if there are any query parameters, make them available from get_input - if (strpos($_SERVER['REQUEST_URI'], '?') !== FALSE) { - $query = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], '?') + 1); - if (isset($query)) { - parse_str($query, $query_arr); - if (is_array($query_arr)) { - foreach($query_arr as $name => $val) { - // should we trim name and val? - set_input($name, $val); - } - } - } + action_gatekeeper(); } $forwarder = str_replace($CONFIG->url, "", $forwarder); diff --git a/engine/lib/input.php b/engine/lib/input.php index f59061312..27204682f 100644 --- a/engine/lib/input.php +++ b/engine/lib/input.php @@ -167,6 +167,23 @@ function autop($pee, $br = 1) { } /** + * Examins $_SERVER['REQUEST_URI'] and set_input()s on each. + * Required if the params are sent as GET and not forwarded by mod_rewrite. + * + * @return bool on success + */ +function elgg_set_input_from_uri() { + $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); + parse_str($query, $query_arr); + + if (is_array($query_arr)) { + foreach($query_arr as $name => $val) { + set_input($name, $val); + } + } +} + +/** * Page handler for autocomplete endpoint. * * @param $page |