Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. В общем передаю идентификаторы через запятую в адресной строке, например: mysyte.ru/show/2,5,6,7,10,15,13/ После получения данных, необходимо отфильтровать полученные айди (удалить все кроме запятых и чисел, удалить лишние запятые). Вот мой почти работающий способ: Код: php 1. 2. 3. Если поставить одну запятую перед первым идентификатором - она не удаляется, и если поставит запятую сразу после последнего айди - она тоже не удаляется. Возможно есть другие, более простые способы фильтровать такие данные? Что скажете? ПС: очень важно получить отфильтрованные айди именно через запятую, ибо выборка из БД идет с помощью Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 02:01 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Так не делают. Делают так. Берут текст, превращают его в данные, затем из данных делают валидный для текущего контекста текст. Это значит $params = preg_replace('/\s+/', '', $params); // удалили все пробелы $arr = explode(',' $params); // превратили массив символов в суб-массивы токенов $arr = array_filter($arr); // удалили все false значения, например пустые '' $arr = array_unique($arr); // оставили только уникальные токены // Готово. Теперь в $arr нормальные значения которые можно юзать. Для where in() потребуется $wherein = 'WHERE IN ( . join(',', $arr) . ')'; Вполне понятно теперь можно обойтись без шаманского вереина. Наделать столько запросов, сколько пришло элементов в $arr и закинуть их в мультиквери. Или как-то еще использовать. Потому что данные нормальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 04:07 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Забыл оформить. И подразумевается что параметры уже получены в строке из URI. Из которой делаются токены по той же схеме $router = explode('/', $uri); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 04:10 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Опять забыл оформить. Так передаются данные в корзину? А по сессии она не наполняется что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 04:12 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
deblogger, Спасибо. интересный вариант. сейчас попробую. deblogger Так передаются данные в корзину? А по сессии она не наполняется что ли? Пользователь с помощью чек боксов выбирает, какие категории товаров отображать на сайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 17:33 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
debloggerВполне понятно теперь можно обойтись без шаманского вереина. Наделать столько запросов, сколько пришло элементов в $arr и закинуть их в мультиквери. А чем плох вереин, и быстрее ли работает mysqli_multi_query() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 17:48 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. там можешь ещё проверять если $out пустой то и условие запроса ненужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2013, 18:39 |
|
||
|
Фильтрация данных, переданных через адресную строку
|
|||
|---|---|---|---|
|
#18+
Сам подход подозрителен. Неизвестно заранее сколько будет OR. Пять, 10, или over9000. Чтобы понять как правильно надо посмотреть вперед. Что придется делать с этим набором? Допустим записать в заказ. Таблица заказов: order_id, item_id, amount, comment. Следовательно имеем типичный инсерт инто values(),(),()... и последующую выборку по одному order_id. Или по user_name применительно к поставленной задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2013, 09:49 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38467130&tid=1463272]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 451ms |

| 0 / 0 |
