mirror of
https://github.com/YGGverse/YGGo.git
synced 2025-01-08 22:07:56 +00:00
add extended syntax filter to prevent sphinxql query error #9
This commit is contained in:
parent
a5f5541395
commit
f7807cf43e
@ -55,6 +55,15 @@ class Filter {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public function sphinxSearchQuery(string $query) {
|
||||||
|
|
||||||
|
$query = str_replace(['\\', '/', '~', '@', '!'], ['\\\'', '\/', '\~', '\@', '\!'], $query);
|
||||||
|
|
||||||
|
$query = trim($query);
|
||||||
|
|
||||||
|
return $query;
|
||||||
|
}
|
||||||
|
|
||||||
static public function plural(int $number, array $texts) {
|
static public function plural(int $number, array $texts) {
|
||||||
|
|
||||||
$cases = array (2, 0, 1, 1, 1, 2);
|
$cases = array (2, 0, 1, 1, 1, 2);
|
||||||
|
@ -34,8 +34,8 @@ if (API_ENABLED) {
|
|||||||
$page = !empty($_GET['page']) ? Filter::url($_GET['page']) : 1;
|
$page = !empty($_GET['page']) ? Filter::url($_GET['page']) : 1;
|
||||||
|
|
||||||
// Make search request
|
// Make search request
|
||||||
$sphinxResultsTotal = $sphinx->searchHostPagesTotal($query);
|
$sphinxResultsTotal = $sphinx->searchHostPagesTotal(Filter::sphinxSearchQuery($query));
|
||||||
$sphinxResults = $sphinx->searchHostPages($query, $page * API_SEARCH_PAGINATION_RESULTS_LIMIT - API_SEARCH_PAGINATION_RESULTS_LIMIT, API_SEARCH_PAGINATION_RESULTS_LIMIT, $sphinxResultsTotal);
|
$sphinxResults = $sphinx->searchHostPages(Filter::sphinxSearchQuery($query), $page * API_SEARCH_PAGINATION_RESULTS_LIMIT - API_SEARCH_PAGINATION_RESULTS_LIMIT, API_SEARCH_PAGINATION_RESULTS_LIMIT, $sphinxResultsTotal);
|
||||||
|
|
||||||
// Generate results
|
// Generate results
|
||||||
$dbResults = [];
|
$dbResults = [];
|
||||||
|
@ -106,8 +106,8 @@ if (filter_var($q, FILTER_VALIDATE_URL) && preg_match(CRAWL_URL_REGEXP, $q)) {
|
|||||||
// Search request
|
// Search request
|
||||||
if (!empty($q)) {
|
if (!empty($q)) {
|
||||||
|
|
||||||
$resultsTotal = $sphinx->searchHostPagesTotal($q);
|
$resultsTotal = $sphinx->searchHostPagesTotal(Filter::sphinxSearchQuery($q));
|
||||||
$results = $sphinx->searchHostPages($q, $p * WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT - WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT, WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT, $resultsTotal);
|
$results = $sphinx->searchHostPages(Filter::sphinxSearchQuery($q), $p * WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT - WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT, WEBSITE_PAGINATION_SEARCH_RESULTS_LIMIT, $resultsTotal);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user