- 1
- 2
$DB->Query("UPDATE b_search_content SET TITLE ='".$name."' WHERE URL='".$URL."' AND PARAM1='USER'" );
$DB->Query("UPDATE b_search_content SET TITLE = CONCAT(TITLE,' тел.' '". $phone ." ' ' ' '". $email."' ) WHERE URL='".$URL."' AND PARAM1='USER'" );
inho 12.10.2017 09:55 # 0
Stallman 12.10.2017 11:17 # 0
bormand 12.10.2017 12:57 # +5
inkanus-gray 12.10.2017 18:36 # +3
Stallman 12.10.2017 18:58 # +2
omar 12.10.2017 11:23 # 0
Stallman 12.10.2017 13:05 # +2
inho 12.10.2017 18:02 # 0
Stallman 12.10.2017 18:23 # 0
inkanus-gray 12.10.2017 18:33 # 0
vistefan 13.10.2017 09:18 # +1
Учитывая, что в ПХП половина стандартных функций deprecated, примерно так и нужно искать актуальные.
SemaReal 13.10.2017 03:10 # +3
vistefan 13.10.2017 09:21 # 0
inkanus-gray 13.10.2017 09:52 # 0
inho 13.10.2017 09:57 # +3
Stallman 13.10.2017 10:04 # +2
bormand 13.10.2017 16:17 # +1
SemaReal 13.10.2017 22:19 # 0
он может иметь права на удаление таблиц
bormand 13.10.2017 23:00 # 0
SemaReal 13.10.2017 23:05 # 0
DROP TABLE типа?
да
bormand 13.10.2017 23:01 # 0
SemaReal 13.10.2017 23:06 # +3
inkanus-gray 13.10.2017 23:13 # +1
bormand 13.10.2017 23:17 # +1
bormand 13.10.2017 23:30 # +1
bormand 13.10.2017 23:31 # +1
Емнип, кот "безопасен" в этом плане совсем по другой причине - пыхомускуль по дефолту не умеет 2 запроса в одной строке.
omar 13.10.2017 09:04 # 0
vistefan 13.10.2017 09:24 # +1
Не надо понимать эти функции, и не надо их использовать. Все проекты на Bitrix надо саботировать, при первой же правке коммитить им бекдор и ломать продакшен, каждый день, пусть бекапятся. Когда им надоест -- предложить перевести на ларавафел или симфони или чо там есть.
Stallman 13.10.2017 10:06 # 0
SemaReal 14.10.2017 00:45 # +3
--Понимаете, мы потом собираем из имени URL, и посылаем его в базу, и там может случиться SQL инъекция. Может быть попробуете другое имя?
inkanus-gray 14.10.2017 00:54 # +1
https://xkcd.ru/327/
SemaReal 14.10.2017 01:09 # 0
ыы;)
voral 18.10.2017 10:50 # 0
Stallman 18.10.2017 12:56 # +1
В это настолько распространенная практика, особенно в пыхомирке, что способна смутить только совсем зелёного джуна, прочитавшего "Совершенный код" и впервые узревшего реальный коммерческий говнокод.
К тому же, не все тут битриксмакаки, что бы знать, что в этом вашем битриксе есть, а чего нет.
voral 18.10.2017 13:13 # 0
Обсуждать говнокод или нет в отрыве от контекста - вообще глупое занятие. Ну давайте взглянем на этот код: параметры могли быть обработаны до этих двух строк. Первая строка, да просто в запарке удалить забыл (ведь вторая просто перекрывает действие первой). Разве такое достойно рассмотрения на гвонокоде? Да такого добра в любом проекте можно найти. А может там какой то хитрый триггер в БДесть, и нужно именно эти два запроса в такой последовательности.... (тогда это уже ближе к теме, но нужен и триггер)
Вообще так сложилось это год занимаюсь вытаскиванием проектов на Битрикс из Ж. Там где работали чайники это понятно и не интересно. Но вот море случаев, где код написан явно не плохим PHPшником. (просто он ввиду лени или
высокой самооценки) не разобрался с битриксом.. В итоге: если поместить его код здесь: все скажут все правильно сделано, даже красиво... Но!. С учетом того, что это битрикс, все же код, при всей "красоте", является быдлокодом.
И тут собственно все так же для любого языка. И красивый код написанный в стиле (утрировано) MFC , будет в Qt проекте быдлокодом.
ИМХО ;)
voral 18.10.2017 13:19 # +1
Данная таблица может быть пересоздана кликом админа (или того кому, таковые права предоставлены) по кнопке в админке. В принципе при обновлении Битрикс, может выскочить плашка "необходимо пересоздать индекс". (А на некоторых проектах встречал вообще на крон сажали полную переиндексацию) Чтобы эти изменения не похерились они должны учитываться при переиндексации. Следовательно, этот код должен быть либо в системных скриптах (что грубая ошибка при работе с любой системой), либо в обработчике соответствующего события (единственно правильное решение). Фишка в том, что в обработчик поступают все необходимые поля, и в базе ни чего править не надо.
subaru 18.10.2017 13:14 # +1
voral 18.10.2017 13:27 # 0
Хороший программист не должен приводит систему в состояние, когда нарушается стандартное поведение системы. Т.е. там надо либо писать документацию, запрещать обновления, и закрывать часть штатного функционала. Иначе, при смене программиста. Попробуйте как то покататься на велосипеде у которого при повороте руля в одну сторону, колесо поворачивает в другую. Со своими таблицами/сущностями можно делать все что угодно. С системными, а точнее сущностями других разработчиков, это уже само по себе быдлоподход.
Теперь к хайлоаду. Этот данный конкретный случай здесь каким боком? Проект с миллиардами пользователей, по которым опупеть как нужен поиск? Точнее даже так. Это должен быть проект на который постоянно скриптами заливают новых пользователей пачками по несколько сотен тысяч.
SemaReal 18.10.2017 13:50 # 0
Нужно оптимайзить эти 20%, а на остальное похуй.
Именно потому всё пишут на ЯПах высокого уровня, а затем оптимайзят ботлнонеки.
Тоже самое и с ORM: в джанге, например, принято для всего юзать ORM, а если конкретное место тормозит то его просто переписывают на raw SQL.
subaru 18.10.2017 14:12 # +5
SemaReal 18.10.2017 14:42 # 0
Stallman 18.10.2017 15:10 # +3
voral 18.10.2017 14:23 # 0
Ок если тут "хайлоад" тогда надо отказываться от стандартной таблицы, и не тащить с ней груз универсальности. А создавать свою таблицу и вписывать в логику работы: это будет и более правильно, и более шустро работать, не потеряется возможность обновлять систему.
Тут надо понять одно: битрикс, как и любая другая CMS это универсальный инструмент, под широкий круг задач. И если у вас проект высоко нагруженный, в узких местах вам необходимо избавиться от не нужного функционала. И решение со своей заточенной под проект таблицей будет работать быстрее и надежнее (если конечно грамотный программист) даже с использованием ОРМ, чем костыли в стандартном функционале с прямыми обращениями. Ну или уж если костылить, тогда быстрее все это запихнуть в триггер БД. (вроде было выше, что данные все берутся из оной).
vistefan 18.10.2017 14:45 # 0
SemaReal 18.10.2017 14:58 # 0
vistefan 18.10.2017 15:00 # 0
voral 18.10.2017 15:06 # 0
Stallman 18.10.2017 15:09 # 0
vistefan 18.10.2017 15:09 # 0