Page 1 of 3

Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 11:46 am
by SpyCam
Есть проблема когда используем расширенный сфинкс поиск, когда запросы поиска идут с апострофом или ковычками.
На уровне темплейтов, можно делать реплейс того или иного, но не обоих с разу.
Нужно как-то на уровне common.php или " или ' ескейпить, чтоб потом это не ломало бы страниц.

Как это сделать?

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 12:29 pm
by admin
Почему нельзя и того и другого сразу ?

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 12:57 pm
by SpyCam

Code: Select all

str_replace(array("'",'"'),array("'",'"'),'<!--SEARCH_QUERY-->'
Ну вот тут отрывок кода.

'<!--SEARCH_QUERY-->' - если тут апостров - триндец, страница сломанна

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 1:02 pm
by xawm
Попробуй поставить бэкслеш перед апострофом:

Code: Select all

str_replace(array("\'",'"'),array("'",'"'),'<!--SEARCH_QUERY-->'

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 1:53 pm
by SpyCam
xawm wrote:Попробуй поставить бэкслеш перед апострофом:

Code: Select all

str_replace(array("\'",'"'),array("'",'"'),'<!--SEARCH_QUERY-->'
Проблема же не тут, а в '<!--SEARCH_QUERY-->', надо что в самом запросе был ескейп

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 5:05 pm
by admin
в коммон можно делать указанный выше str_replace к $_GET['search']

Re: Фильтровка запросов поиска на уровне common.php

Posted: Tue Dec 03, 2013 5:16 pm
by SpyCam

Code: Select all

<?php $search_query=str_replace(array("'",'"'),array("'",'"'),$_GET['search']);?>
Так пойдёт?

Re: Фильтровка запросов поиска на уровне common.php

Posted: Wed Dec 04, 2013 3:09 am
by admin
Если вы где-то используете $search_query - да

скрипт использует $_GET['search'] и соотв менять надо ее если надо что б оно к скрипту приходило в измененном виде.

Re: Фильтровка запросов поиска на уровне common.php

Posted: Wed Dec 04, 2013 7:25 am
by SpyCam
ОК, это работает как надо. Спасибо

Re: Фильтровка запросов поиска на уровне common.php

Posted: Wed Dec 04, 2013 12:30 pm
by admin
Ok