It builds a normalized query string, where keys/value pairs are alphabetized
and have consistent escaping.
public static getQueryString ( ) : string | null | ||
return | string | null | A normalized query string for the Request |
function testGetQueryString() { $s = array('QUERY_STRING' => 'bla'); $r = new Request($s); $this->assertEquals('bla', $r->getQueryString()); $s = array(); $r = new Request($s); $this->assertEquals('', $r->getQueryString()); }
public function __invoke(array $record) { $record['context']['app'] = $this->appName; $record['context']['environement'] = $this->environment; $record['context']['Hostname'] = gethostname(); try { if (null === $this->request) { $this->request = $this->container->get('request'); } $record['request']['base_url'] = $this->request->getBaseUrl(); $record['request']['scheme'] = $this->request->getScheme(); $record['request']['port'] = $this->request->getPort(); $record['request']['request_uri'] = $this->request->getRequestUri(); $record['request']['uri'] = $this->request->getUri(); $record['request']['query_string'] = $this->request->getQueryString(); $record['request']['_route'] = $this->request->get('_route'); } catch (\Exception $e) { // This stops errors occuring in the CLI } return $record; }
/** * Get the complete URL to this page, including parameters. * @return string */ function getCompleteUrl() { static $completeUrl; if (!isset($completeUrl)) { $completeUrl = Request::getRequestUrl(); $queryString = Request::getQueryString(); if (!empty($queryString)) { $completeUrl .= "?{$queryString}"; } HookRegistry::call('Request::getCompleteUrl', array(&$completeUrl)); } return $completeUrl; }
private function getResponse() { $result = array(); try { $queryString = urldecode(Request::getQueryString()); $queryString = str_replace(' ', '+', $queryString); $queryArray = explode('&', $queryString); foreach ($queryArray as $value) { if (strpos($value, 'r=') === 0) { $value = substr($value, 2); $value = $this->decryptText($value); $response = explode('&', $value); foreach ($response as $r) { $rArray = explode('=', $r); $result[$rArray[0]] = utf8_encode($rArray[1]); } break; } } return $result; } catch (Exception $ex) { return $result; } }
private function checkDicUrl($dic, $dic_id) { $qs = Request::getQueryString(); if ($qs != '') { $qs = '?' . $qs; } if ($dic->entity && is_numeric($dic_id)) { Redirect(URL::route('entity.index', $dic->slug) . $qs); } elseif (!$dic->entity && !is_numeric($dic_id)) { Redirect(URL::route('dicval.index', $dic->id) . $qs); } }
private function getMoreLink($count, $limit, $offset) { // Calculates the $next_offset. $next_offset = $offset + $limit; if ($count <= $next_offset) { return ''; } // Changes (when defined) or appends (when undefined) offset. $query = \Request::getQueryString(); $statement_route = \URL::route('xapi.statement', [], false); $current_url = $query ? $statement_route . '?' . $query : $statement_route; if (strpos($query, "offset={$offset}") !== false) { return str_replace('offset=' . $offset, 'offset=' . $next_offset, $current_url); } else { $separator = strpos($current_url, '?') !== False ? '&' : '?'; return $current_url . $separator . 'offset=' . $next_offset; } }
/** * Runs the application * Should be called once in appinit.php * * * @return void * @static */ public static function run() { try { try { if (substr(Request::getUri(), -1) !== '/') { if (Router::getMatchedRoute(true)) { self::redirect(Request::getBaseUri() . Request::getUri() . '/' . Request::getQueryString()); } } // log the uri Log::out(__METHOD__ . ' URI: ' . Request::getBaseUri() . Request::getUri(), Log::LEVEL_DEBUG); // only starts output buffering in development mode if (!self::isDevMode()) { ob_start(); } $all_routes_processed = false; $matched_route = null; $offset = -1; // start searching for matched route while (!$all_routes_processed) { $matched_route = Router::getMatchedRoute(false, $offset + 1); if (!$matched_route) { App::notFound(); } // log the pattern Log::out(__METHOD__ . ' Matched route: "' . $matched_route->name . '", pattern: ' . $matched_route->getPatternRegex() . ', offset: ' . $matched_route->getOffset(), Log::LEVEL_DEBUG); // log route params Log::out(__METHOD__ . " Route params: \n" . print_r($matched_route->getParams(), true), Log::LEVEL_DEBUG); $offset = $matched_route->getOffset(); try { Loader::invoke($matched_route); } catch (BakedCarrotPassException $e) { $all_routes_processed = false; continue; } $all_routes_processed = true; } if (!self::isDevMode()) { ob_end_flush(); } } catch (Exception $e) { if (self::isDevMode()) { while (@ob_end_clean()) { } } $classes_to_test = array(get_class($e), get_parent_class($e), 'Exception'); $executed = false; foreach ($classes_to_test as $class) { if (isset(self::$exception_handlers[$class])) { Loader::invokeExceptionHandler($e, self::$exception_handlers[$class]); Log::out(__METHOD__ . ' Exception handler "' . self::$exception_handlers[$class] . '" invoked for class "' . $class . '"', Log::LEVEL_INFO); $executed = true; break; } } if (!$executed) { throw $e; } } } catch (Exception $e) { self::$instance->handleDefaultException($e); } }
/** * Функция сохраняет текущее состояние записи, * восстанавливает состояние записи из резервной копии * и удаляет все резервные копии, превысившие лимит * * @param $id * * @return string * @throws Exception */ public function restore($id) { /** * Находим запись резервной копии для восстановления */ $version = $this->essence->where('id', $id)->with(['metas', 'blocks.metas', 'seos'])->first(); if (!isset($version) || !is_object($version) || $version->version_of == NULL) { return Redirect::to(URL::previous()); } #Helper::tad($version); /** * Находим запись оригинала */ $element = $this->essence->where('id', $version->version_of)->with(['metas', 'blocks.metas', 'seos', 'versions'])->first(); if (!isset($element) || !is_object($element) || $element->version_of != NULL) { return Redirect::to(URL::previous()); } #Helper::ta($version); #Helper::ta($element); #dd(); #Helper::ta($element->versions); /** * Создаем резервную копию оригинальной записи */ $create_backup_result = $this->create_backup($version->version_of, FALSE); if (!$create_backup_result) { throw new Exception("Can't create backup of original record"); } #Helper::tad($element->versions); /** * Восстанавливаем содержимое записи из резервной копии */ $restore_backup_result = $this->restore_backup($version->id); if (!$restore_backup_result) { throw new Exception("Can't restore backup of original record"); } /** * Удаляем старые резервные копии (если их больше лимита) */ $delete_backup_result = $this->delete_backups($element->id); if (!$delete_backup_result) { throw new Exception("Can't delete over backups of original record"); } #Helper::dd((int)$create_backup_result . ' / ' . (int)$restore_backup_result . ' / ' . (int)$delete_backup_result); $url = action('page.edit', array('id' => $element->id)) . (Request::getQueryString() ? '?' . Request::getQueryString() : ''); #Helper::d($element); #Helper::dd($url); ## Clear & reload pages cache Page::drop_cache(); Page::preload(); #return Redirect::to($url); Redirect($url); return ''; }
<?php $urls = Config::get('moved.urls', []); foreach ($urls as $old => $new) { Route::get($old, function () use($old, $new) { $url = $new; $query = Request::getQueryString(); $question = Request::getBaseUrl() . Request::getPathInfo() == '/' ? '/?' : '?'; if ($query) { $url = $query ? $url . $question . $query : $url; } Event::fire('moved.redirect', array($old, $new)); return Redirect::to($url, 301); }); }
/** * Returns the query strng * example: http://zbase.com/x/y/z?a=b&a=b&c=d * returns: a=b || a=b&c=d * * @return type */ function zbase_query_string() { return \Request::getQueryString(); }
function rehost($new_host) { $query = Request::getQueryString(); return $new_host . '/' . Request::path() . ($query ? '?' . $query : ''); }
<?php $clinic_id = Request::Field("clinic_id"); $vnd_id = intval(Request::Field('vnd_id')); $fieldsArr['vnd_first_name'] = Request::Field('vnd_first_name'); $fieldsArr['vnd_last_name'] = Request::Field('vnd_last_name'); $fieldsArr['vnd_email'] = Request::Field('vnd_email'); $fieldsArr['vnd_active'] = Request::Field('vnd_active'); $fieldsArr['vnd_username'] = Request::Field('vnd_username'); $fieldsArr['vnd_password'] = Request::Field('vnd_password'); $Doctor = new Doctor($vnd_id); if (FieldValidator::validateFields($fieldsArr, $Doctor) != 1) { Redirect("/admin/dashboard/doctors/edit?Message=" . urlencode(FieldValidator::$error) . "&novalid=1&" . Request::getQueryString()); } if ($vnd_id == 0) { $fieldsArr['vnd_entrydate'] = date("Y-m-d H:i:s"); $fieldsArr['vnd_entryip'] = $_SERVER['REMOTE_ADDR']; Database::Insert("vnd_doctors", $fieldsArr); Redirect("/admin/dashboard/doctors?clinic_id={$clinic_id}&Message=" . urlencode("You have added this Doctor.")); } else { Database::Update("vnd_doctors", $fieldsArr, $vnd_id, "vnd_id"); Redirect("/admin/dashboard/doctors?clinic_id={$clinic_id}&Message=" . urlencode("You have updated this Doctor.")); }