- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Купил вот тут web-zona.ru скрипт доски объявлений - небыло времени на написание самому и решил что за 100$ то я куплю нормальный, безглючный скрипт. По функционалу вроде бы то что надо. Каково же было разочарование после приобретения... MySQL запросы пришлось переписывать практически все! Да и сам код не идеальный в плане оптимизации, не говоря уже о варнингах на 2 экрана при открытии любой страницы. Пишу потому что уже накипело все это исправлять! Здесь буду приводить самые маразматичные моменты и как сделал я, а вы уж сами решайте... Может я тут только зря воду мучу.
Первый пример, подсчет кол-ва размещенных объявлений вчера и сегодня для вывода на ВСЕХ страницах, т. е. этот кусок кода дегается постоянно!
Было:
Стало:
ЗЫ. Про SQL иньекции похоже вообще не слышал, а зачем нужно использовать addslashes() имеет приблизительное представление. Вот например:
- слешит целое число, полученное из функции date(), а данные из поля textarea может и прям так в базу фигануть :confused:Вот так вот мы обрабатываем полученное из БД поле типа TEXT перед выводом:
Даже если оставить так, то встает вопрос, какой идиот придумал htmlspecialchars() если можно обойтись вышеприведенными четыремя строчками?
А вот так вот перед сохранением в БД:
а дальше прям так записываем в базу! ☝ Функция word_wrap() - это вообще что-то с чем-то:
Еще одна интересная функция обнаружилась, но это уже из разряда "было":
было:
стало:
Да уж, нарвался ты на нехорошее...
Пусть за такой труд разработчики денег еще доплатят :)
Да уж... И это продают за деньги... :(
Всяко лучше самому написать, чем переделывать за всякими школьниками-недоучками.
Ну я думаю, что порой надо прежде чем купить смотреть. Сам в свое время нарвался на каталог ссылок - который еще и имел упаковочку симпотную зеленую. Ужас просто. Там все было в зенде, половина функция глючила.
Пропали тогда мои 250 баксов. :)
Тоже покупал этот скрипт футболили меня с одного хостинг на другой за большое количество запросов MYSQL.Писал разработчику что скрипт оказывает большую нагрузку никаких патчей неполучил в итоге помучившись в доволь снёс его и купил другой теперь доволен и поддержку мне оказывается в полном объёме.
А какой купил?
P.S. И я снес, толку от их базы со временем вообще ноль стало.
А какой купил?
P.S. И я снес, толку от их базы со временем вообще ноль стало.
Если вопрос ко мне то покупал скрипт доски объявлений
$y=date('Y');$m=date('m');
$d=date('d');
Особенно порадовало 🚬
Большую часть переписал, но на некоторый бред хотелось бы еще особо обратить внимание :)
Прикрепление изображений к объявлению.
Метод автора: для начала определим сколько нам необходимо прикреплять изображений к объявлению? Пусть будет 3! Не вопрос, в таблице с объявлениями добавляем 3 поля photo, photo1, photo2 где будем хранить имя изображения. Далее в странице добавления объявления 3 раза повторяем кусок кода для загрузки изображения, а на странице редактирования объявления - обрабатываем 3 действия для удаления картинки из объявления, разумеется 3 идентичными кусками кода! Теперь допустим я решил что мне мало 3 фотографий для объявления, хочу 15 - таблица обзаводится еще 12 полями, а в коде размножаем одинаковые куски по 12 раз? Почему же нельзя было создать отдельную табличку куда писать имя файла, ID объявления, а кол-во изображений для объявлений ограничить в конфиге?
Загрузка списка категорий.
Для получения категорий левого (основного меню), (см. аттачмент) основного списка (тот который с иконками в центре) и в центре ниже используются 3 разных метода - которые непременно рекурсивно лазеют в базу ☝ Т.е. для кол-ва рубрик на скриншоте получится около 40 SQL запросов!!! А если рубрик будет больше и вложенность увеличена - то это настоящее испытание для SQL сервера. В итоге был написан 1 запрос, из которого строится полное дерево категорий и передается в шаблон, а там уже в разных местах по разному разбирается одно и тоже дерево.
Ну и так еще некоторые перлы с которыми столкнулся :)
На главной странице выводятся последние объявления, при просмотре раздела - там так же выводятся последние объявления этого раздела. Логично было предположить что используется один метод для получения последних объявлений в зависимости от рубрики (на главной от корня). Но только не здесь! На каждой странице (даже при создании объявления) из базы выгребаются последние для главной, а при просмотре рубрик - выбираются еще и для рубрики. Вот так вот.
Пока все... Но это только пока - работа еще не закончена.
ЗЫ Для всех желающих или вложивших деньги в это чудо разработки по окончании работ будет выложен дистриб под GPL