iFruktTV, а по поводу дырявого - лучше сразу открыть для себя безопасные функции для валидации входных данных (filter_input например) и для безопасной вставки строк в SQL-запрос (плейсхолдеры), чем по 10 раз переписывать старый код и исправлять в нём дыры, которые легко проглядеть.
Если картинка одна или меньше, не заворачиваем её в div, если две или более - заворачиваем.
Почему не заворачивать одну - логика авторов шаблона совершенно непонятна)
Гораздо логичнее было бы заворачивать, если есть хотя бы одна, а не хотя бы две.
bpGusar, отследить, какие запросы для воспроизведения видео совершает ваш браузер, и сделать то же самое при помощи какого-нибудь request или axios. Также вероятно, ссылка для загрузки видео содержит хэш, привязанный к IP, а может и не только к нему (как в случае с аудиозаписями и документами в vk), потому тупым копированием ссылки из консоли браузера в node скорее всего не обойтись, нужно будет искать способ, как эту ссылку сперва получить, имея в распоряжении к примеру id видео.
Дмитрий, если запрос вернёт 0 строк, то всё равно тип будет ресурсом. Нужно либо смотреть кол-во строк в выборке, либо запрашивать у БД кол-во строк (SELECT COUNT(*) FROM ... WHERE ...), вместо самих строк.
try есть, а catch нет, мы ловим ошибку, но ничего с ней не делаем. По-хорошему, нужно не проглатывать, как типичный россиянин при ущемлении его прав, а как-то обрабатывать, что-то на худой конец выводить на экран, чтобы юзер видел, что он ввёл что-то не то.
Зависит от того, занимались ли вы подгоном разных размеров под пиксельную сетку или нет.
Но обычно если х1 подгоняли и вас устраивает этот результат для других размеров, то х2 и х3 подгонять отдельно не надо, т.к. там пиксели кратны.
it_pear_yurec, зависит от того, какое именно поведение вы хотите добиться. Учитывать ли самое первое посещение и т.п., учитывать ли посещения с других поисковиков и т.п., учитывать ли посещения, если вообще нет utm_source, и что делать - если кука уже есть, а тот же юзер зашёл с другим utm_source (переписывать куки или оставить исходную)
it_pear_yurec, при переходе - отправляете пользователю куки, а при последующих заходах проверяете, если эта cookie присутствует - то выводите одно значение, если нет - то другое.
Имейте ввиду, что при установке куки функцией она не добавляется автоматом в суперглобальный массив $_COOKIE, а добавлена туда будет только в последующих запросах (если браузер её принял и отправляет), этим как раз можно пользоваться для определения первого или не первого захода.
FanatPHP, для эксплуатации этой уязвимости автор скрипта должен стрелять себе в ногу. Но вы этот факт не учли, что автор будет стрелять подобным методом, но при этом оскорбляете всех отвечающих, которые не предоставили в своих ответах способы стрельбы в ноги при помощи функции mysqli_real_escape_string. Определитесь уже, является ли намеренная стрельба в ногу уязвимостью или нет, и если не является - то не судите других отвечающих, а если является - исправляйте в своём коде.
FanatPHP, ну да, не понимая смысла функции, я обнаружил в вашем классе уязвимость, которую вы, как слепой котёнок, даже и не могли предположить)) Жалко тех людей, которые воспринимают вашу браваду за чистую монету и доверяют вам, не понимая, что вы немногим лучше Евгения Попова, но совершенно не умеете вести бизнес, зато умеете убеждать овец, что ваш код - безопасный, хотя таким не является и легко опровергается любым более-менее знающим человеком, который в этот код внимательно вчитается)
Может быть, стоит прекратить пытаться гнуть свою линию и признать, что вы не такой уж знаток, каким себя выставляете?)) Обдристались - стирайте штаны, а не пытайтесь убедить, что это новая мода такая))
А ещё я заметил у вас признаки шизофрении, потому что только шизофреник не смог распознать сарказм в дисклеймере, намеренно переполненном сарказмом более чем на 90%. Но вы не мой пациент, обращайтесь к квалифицированным врачам для постановки точного диагноза и прохождения соответствующего лечения, тут помочь ничем не смогу, увы.