Задать вопрос
  • Нужна ли адаптивная вёрстка для компьютерного браузера, если кто-то будет уменьшать окно браузера до мобильной версии?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько такой подход к разработке правильный?
    Нинасколько. Так как озон достаточно старая система, проектирование мобильной версии с отдельным мобильным видом наследие периода когда верстку сделать адаптивной было гораздо сложнее, а поисковые роботы еще ориентировались на субдомены по типу м.домен.тлд для отображения результатов поиска с мобильных устройств. Менять что-то с потерей поисковой индексации уже никто не будет.

    В сегодняшних реалиях такой подход для новых проектов неприемлем, так как это лишняя работа и лишний код отдельно для мобильной версии, что еще и обслуживание усложняет. Все делают мобайл фирст верстку (так как ~80% траффика это мобилы), и сразу адаптив, так как современный цсс делает это на раз-два. Короче, сейчас так не делают.

    Навряд ли многие люди так уменьшают окошко браузера вручную и для чего это нужно...
    Это нужно не для людей которые "уменьшают окошко", а для бесшовного перехода между устройствами, так как есть планшеты, нетбуки, мобилы с разным разрешением и просто масштабирование в браузере, и для всего этого зоопарка адаптив позволяет задать нормальный вид, практически для любого устройства в заданном диапазоне разрешений, причем без специальной подгонки под экран.
    Ответ написан
    7 комментариев
  • Ошибка с jquery?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    тут нужно либо крестик снять, либо трусы надеть. Вы делаете отложенную загрузку скрипта жквери (через дефер), и при этом вызываете код, который без него работать не будет.
    Вариантов 2:
    1) Убрать дефер на жквери скрипт
    2) Закатать весь код жквери в православный ванила жс евент загрузки, типа документ.аддевентлистенер (ДОМCонтентЛоадед)
    Ответ написан
    Комментировать
  • Что за CMS, на какой системе сделать подобный сайт?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Любой сайт в интернете можно повторить (при наличии умений либо денег), причем выбор технологии/движка и прочих нюансов вообще не определяющий фактор. Сделать надо на том что знаешь, если делаешь сам, или на том что знает и рекомендует нанятый разработчик, если вы заказываете сайт у сторонних специалистов.
    Ответ написан
  • Как вставить разметку Open Graf на сайт с шаблонным header?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как реализовать разное описание страниц и заголовки я нашла - с помощью переменных.
    ну так и
    То есть проблема все же в том, что нужно помещать ее в head.
    В чем проблема то? Выводите ваши теги в хеадер, так же как и все остальное - переменными.
    Ответ написан
  • Почему мой ноутбук не показывает мне сайты?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Все по классике:
    трейсроут
    проверить днсы
    Протестировать основные сайты на открытие
    Посмотреть ответы от сервера в консоли/нетворк браузера
    Ответ написан
    Комментировать
  • Категории не подгружаются при первой загрузке страницы, как исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Судя по описанию, проблема в кэше.
    Система скорее всего вордпресс?
    Ответ написан
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    делаю запрос в бд, вытаскиваю товары которые есть в API и пытаюсь искать в массиве вытащенных товаров - товары, которых нет в API через in_array,
    Для этого есть not in, перечисляете айдишники/уникальные идентификаторы всех пришедших с апи товаров, и у оставшихся ставите наличие 0 одним апдейтом.

    но что-то фигня какая-то получается, находит один единственный товар, который есть и в API и в бд
    По описанию вообще не ясно как вы ищете совпадающие товары, по этому есть мысль что проблема скорее в коде и алгоритме, чем в апи или базе.
    Ответ написан
  • Почему на ios не работает addEventListener('click')?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Емнип window это объект браузера, со своими свойствами и евентами, в которые вроде даже DOMContentLoaded не входит (вместо него есть "load"), это евент документа. Скорее странно что это работает на не айос...
    -window.addEventListener('DOMContentLoaded', () => {
    +document.addEventListener('DOMContentLoaded', () => {
    Ответ написан
    Комментировать
  • Как сверстать такое (фото)?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как добавить и реализовать эти кнопки для поля поиска?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    скорее всего тупо ссылки по типу <a href="/search?q=iPhone">iPhone</a>
    Ответ написан
    1 комментарий
  • Проблема миграции базы данных с mysql 8 на mariaDB 10?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Как уже написал Akina, полной совместимости между этими версиями нет, но основной синтаксис без каких-то хитропопых движух по типу хранимок и кастомных/новомодных типов полей вполне совместим.
    Что можно попробовать:
    1) Добавить в начале дампа игнор внешних ключей, судя по всему у вас в транзакции происходит фигня, но что конкретно ее вызывает не видно, возможно таблица требует ссылки на внешний ключ, который еще отсутствует. В конце стоит снова включить контроль ключей. DISABLE KEYS и SET FOREIGN_KEY_CHECKS=0; в начале, и соответственно включить в конце дампа.
    2) Если база большая, а инсерты в дампе не разбиты по строкам на адекватные блоки, можно попробовать убрать транзакции и посмотреть что конкретно не нравится системе. Возможно надо разбить инсерты на более мелкие блоки вставки, а возможно есть действительно несовместимый синтаксис.
    3) Если такие танцы не помогают - костыли с методом описанным Akina, через csv и потом ручками связи/ключи/индексы/хранимки.

    UPD: Народ говорит что может помочь принудительное указание типа движка таблиц и предварительная конвертация:
    The tables must be InnoDB. After converting the tables to InnoDB, the database could be migrated
    Ответ написан
  • PHP - как показать изображения в браузере из папки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я хочу вынести ее из публичной папки.
    Зачем? Есть какая-то особенная необходимость? По логике все файлы сайта должны находиться в одной папке проекта, а файлы видимые из веба в публичной папке проекта. В некоторых случаях, например когда эти файлы не должны отдаваться без какого-то уровня доступа, их выносят выше публичной папки, таким образом закрывая от прямого доступа из веб. Далее доступ осуществляется через пхп, конкретная реализация сильно зависит от задач и имеющегося кода/фреймворка. Простейший вариант - имя файла читается как параметр из урл, далее делается readfile() из этой папки с файлами, предварительно отдаются заголовки, указывающие что это файл изображения. Хотя без понимания "зачем" реализация "как" это тыканье пальцем в небо. Может вам симлинк тупо подойдет...

    В идеале - в любое место на диске, которое захочу.
    Так делать не нужно. Это во первых нарушает безопасность, так как вы даете права на чтение из веба в папку, которая не должна быть доступной левым пользователям, во вторых распыляет проект по машине, что тоже не есть хорошо как минимум в плане организации.
    Ответ написан
    2 комментария
  • Как называется функция меню сайта?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    по итогу генерируется фото футболки с теми параметрами, которые он выбрал?
    Называется "влажные фантазии". Обычно на маркетплейсах за подобный функционал отвечает фильтрация, а не меню. Никакой генерации обычно не используется, просто фото всех доступных вариантов есть в виде картинок, а параметры перечислены в бд.

    Если ищете готовые решения - скорее всего подойдет вордпресс + вукомерс. Так же можно поискать готовые онлайн магазины SAAS, с оплатой помесячно с нужным функционалом.
    Ответ написан
    Комментировать
  • Как полностью сбросить кеш статики в laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Кеш именно статики, после обновление картинок уловно в public/assets в формате PNG, они упорно не отображаются даже при прямой запросе изображения в строке браузера.
    Кэш "статики" это чисто в вашем браузере. На другой машине все ваши картинки будут отображаться нормально при первом заходе, но так же перестанут подгружаться измененные при последующих заходах. Никакие "кэши ларавела" конечно же за это не отвечают.

    Как решения прописывать каждый раз новые пути и название картинок - но не оч удобно при разработки визуала.
    Можете использовать версию, что-то типа <img src="logo.png?<?=VER?>">, естественно надо будет менять эту константу при изменении картинок, хотя это и некоторого рода костыли. Правильным решением будет переход на сборку фронтенда сборщиками, но так тоже будет работать.
    Ответ написан
    Комментировать
  • Как ОТВЕТИТЬ на письмо через PHPMailer?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Для этого в письмо-ответ надо добавить заголовок In-Reply-To с указанием значения заголовка Message-Id оригинального письма. В заголовок References ответа надо скопировать все ID из заголовка References оригинала и дописать после пробела значение заголовка Message-Id оригинального письма.

    В вашем коде я не вижу как вы получаете $message_id, который должен быть вытащен из оригинального письма, соответственно скорее всего отсутствие указание на изначальное письмо не позволяет определить к какой цепочке относится ответ.
    Ответ написан
  • Как установить PHP в режиме отладки под Ubuntu?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Но при попытке запустить этот же скрипт из командной строки я получаю ошибку о том, что расширение pdo_mysql.so не может быть загружено.
    Для cli и для "веба" разные php.ini, в которых естественно включены разные расширения.

    php --ini для cli
    phpinfo() для веба
    Ответ написан
    5 комментариев
  • В чем ошибка SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $params собственно нужен для биндинга, чтобы не вставлять данные прямо в запрос, так как это чревато инъекциями. По этому дебильный совет "просто поменяй на $stmt->execute();" желательно проигнорировать.

    2) Вместо переменных нужно вставить плейсхолдеры, именованные или безымянные не особо важно. Естественно количество плейсхолдеров должно совпадать с количеством элементов в массиве.

    3) Даже в таком виде как у вас запрос работать не будет, так как строковые переменные в рамках запроса должны быть в кавычках.

    4) WHERE $email что? Вы вообще понимаете что и для чего пишете? Просто переведя на русский "где емэйл" не кажется вам слегка странной конструкцией? Просто загляните в документацию SQL где описывается WHERE.
    Ответ написан
    Комментировать
  • Есть ли смысл перенести Mysql на другой сервер для ускорения сайта?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    В основном, видимо, нагружают они.
    Профилирование?
    Ответ написан
    2 комментария
  • Ошибка при вызове окна сохранения, как решить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Судя по скрину, у вас сначала выводится дофига контента, а затем вы пытаетесь отправить файл. Так как все заголовки уже отправлены, естественно никакие данные в заголовок посреди вывода контента уже не добавятся (о чем собственно и написано в варнинге).
    Ответ написан
    Комментировать