Задать вопрос
  • Как сгенерировать html документ из php с помощью js?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    открыть вашу пхп страницу в браузере и ctrl+s не подходит?
    Ответ написан
  • Есть примеры сайтов на чистом html, css и js, без cms и прочих конструкторов?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Кодировка страницы + кодировка соединения + кодировка таблицы в бд + желательно дефолтная кодировка в пхп.ини = utf-8
    Ответ написан
    4 комментария
  • Как выводить конкретную информацию для конкретного юзера?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Сессии, токены... Методов много, самый простой - сессия.
    Ответ написан
    Комментировать
  • Где хранить аутентифицированного пользователя?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Весь тот кусок что у вас в конструкторе перенести в контроллер, можно в базовый, можно в миддлвэйр. Работа с глобальными переменными в моделях означает что вы что-то делаете не так.
    Естественно, его надо переписать, текущего пользователя внести либо в режистри (что проще, но идеологически не верно), либо передать параметром во вью, дабы на фронте можно было как-то оперировать состоянием/данными пользователя, ну и в контроллере вынести в $this.

    По сути в объекте пользователя нет необходимости хранить все данные, можно вообще хранить только логин, айди, что-то часто используемое и статус залогинености, и все это кинуть либо в массив вообще, либо в стдкласс.

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    ForSureN1, Технические вещи, которые выдает гпси относятся к нескольким специалистам сразу: Админу, в части настроек сервера, в том числе настройках кэширования статики, Фронтенду, по оптимизации кода и изображений, и Бэкенду, по оптимизации кода, чаще всего относящемуся к скорости запросов в бд, где обычно и происходит затык.

    В вашем случае часть работ лежит на админе, в частности
    Сократите время до получения первого байта от сервера
    Задайте правила эффективного использования кеша для статических объектов


    Ну и остальное в основном ваше - код почистить и минифицировать, жс подшаманить что возможно, задать размеры картинкам и блокам для сокращения лэйаут шифтинга...
    Ответ написан
    3 комментария
  • Как кэшировать background (фоновую картинку сайта)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Гугл тоже может ошибаться, проверьте верно ли у вас отдается эта картинка сервером, зайдите в нетворк, посмотрите тянется ли она с нужными заголовками, возможно в гуглпэйджспид не обновились данные...
    2) проверьте расширение картинки, возможно оно написано в верхнем регистре, а в правилах у вас кейс сенситив регулярка.

    Пока идей больше нет...
    Ответ написан
    4 комментария
  • Почему не отправляются данные формы HTML на почту средством PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как минимум по тому что у вас группа задач подана как один вопрос. Сначала определите на каком этапе у вас происходит сбой, а потом уже задавайте конкретный вопрос по конкретной проблеме. var_dump() в помощь. И порядок в коде... отсутствует, половина переменных хрен знает откуда взялась, вторая нигде не используется...
    Ответ написан
    Комментировать
  • Как правильно сделать счётчик посещения страницы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть несколько подходов, каждый по своему хорош в той или иной ситуации.
    1) Забить на все эти куки/ип и считать каждый заход, что по сути нормально, я вполне могу зайти посмотреть какой-то материал 2-3 раза, а просто тупо рефрешить страничку редко кто будет. То есть это вполне нормальный способ без заморочек, тупо +1 на просмотр.

    2) Считать куку в отдельной таблице айди | кука | айди статьи , где кука будет уникальным полем, пишете запрос с он дупликэйт игнор, и потом тупо селект суммы по айди статьи. Это накладнее по ресурсам, как по месту, так и по процу, но считает чисто уников. Считать по айпи - глупо, ибо 80% траффика на сегодня - мобила, а при переподключениях к сети айпи будет меняться у одного пользователя, короче это нифига не уникально.

    3) Забить на подсчет своими силами, и ориентироваться на профессиональные счетчики а-ля яндекс гугл. Просто, качественно, весьма достоверно. Графики, аналитика и прочие плюшки бонусом.
    Ответ написан
    2 комментария
  • Как получить медиафайлы отдельно?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • На сайте вызывается 2 формы,вторая форма не работает как починить?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Простое/тупое решение: Сдублируйте код, поменяйте во второй форме айдишник поля на phone1, и поменяйте var phoneInputID = "input#phone1";.
    Ответ написан
  • Как выполнять задачу каждые 10 секунд в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Кажется вы ставите телегу впереди лошади, впрочем как и многие новички, пытающиеся решить задачу с оповещениями/изменениями через крон/интервал.

    присылать уведомление, если цена изменилась более чем на 2%
    Во первых откуда берутся изменения? Если у вас они происходят программно - проще во время обновления в бд проверить расхождение с предыдущей ценой, и в случае разницы в эн процентов оповещать всех подписанных на событие клиентов по сокету.
    Во первых обновления будут приходить сразу, а не каждые 10 секунд,
    во вторых не придется выбирать ВСЕ товары и сверять с каким-то хранимым массивом (его еще и хранить где-то надо чтобы разницу считать),
    и в третьих нагрузка при этом на порядки ниже, так как у вас на руках сразу все изменения, и ничего дополнительно выбирать не надо.
    Ответ написан
    2 комментария
  • Как получить данные таблицы SQL по нескольким условиям?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    первое что надо сделать - отдельно сформировать и вывести запрос, после этого во первых будет видно что туда попало, во вторых можно вставить в консоль скюэля или в пхпмайадмин и выполнить, может там тупо нет таких данных.
    Вывод ошибок и варнингов тоже нужен, чтобы было ясно вообще что и где неправильно работает.
    Ответ написан
    Комментировать
  • Как можно отследить скролл вниз или вверх, если height 100vh и overflow:hidden?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Емнип скролл евент не имеет "направления" в жс, можно только отследить перемещение элемента относительно предыдущей позиции, так что никак, только если добавить 1 пиксель, и уже по нему отслеживать сдвинулось на 1 пиксель вверх/вниз или осталось прежнее направление.
    Ответ написан
    Комментировать
  • Как открыть pop-up окно с другой страницы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Главная страница в данном случае должна "следить" за событиями на сервере, и по определенному событию делать что-то, например показывать попап или играть музыку, не суть.
    Отслеживать можно несколькими способами:
    1) Открыть сокет соединение и ждать события в сокете, требуется поддержка/установка сокетов на сервере
    2) Через определенный интервал опрашивать сервер аяксом, единственное преимущество - не нужно ничего настраивать, будет работать с любыми дефолтно настроенными серверами.
    3) Настроить лонг полинг, но для этого тоже требуется настройка лонг полов на сервере.
    Ответ написан
    Комментировать
  • Поиск по сайту с уведомлением при наличии требуемой информации?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.google.com/search?q=site+monitoring+to...
    первая ссылка (у меня) - https://uptimerobot.com/
    Для себя я бы накидал на пхп скрипт с курлом и регулярками, и запускал бы по крону/планировщику. С оповещением чуть сложнее, но решаемо, например запуск через exec() какой-то звуковой софтины.

    UPD: для десктопа: https://www.google.com/search?q=site+monitoring+to...
    Ответ написан
    1 комментарий
  • Проблема с формой на php?

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

    Для отладки и проверки можно использовать mail() с заранее вставленными правильными данными, не через форму, и проверить работает ли вообще эта функция, и потом уже делать выводы.
    Ответ написан
    Комментировать
  • Как проще всего заменить популярный JS скрипт своим на большинстве сайтов?

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