• Как реализовать функцию статистики просмотра страницы за некий период?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Важно, что бы это была статистика за день/месяц/год/всё время.
    Первое что нужно - определитесь с минимальной статистической единицей, если это день - значит храните сумму за день, табличка соответственно будет что-то типа:
    id, page_id, date, views;
    Соответственно если нужен меньший таймфрейм - дата будет уже дататайм. Далее простой джоин, груп с аггрегацией и sum()
    Ответ написан
    9 комментариев
  • Как узнать width и height видеофайла при загрузке на сервер?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ffmpeg
    Ответ написан
    Комментировать
  • Как вернуть NULL если ничего не найдено в SQL?

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

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

    В зависимости от возможностей хостинга, файлы хранят либо локально(в случае например собственного выделенного сервера и наличия райд стойки), либо, как уже написали, в облачных хранилищах, что чаще всего достаточно выгодно в плане денег за объем/трафик, плюс расширение хранилища будет просто отражаться на счете за услуги, а не ложиться ответственностью на вас как владельца сгоревших винтов с данными клиента. АПИ у всех весьма несложные, а драйвера для работы с удаленными файлохранилищами есть практически для всех популярных движков в виде готовых пакетов.
    Ответ написан
    3 комментария
  • Как исправить пустые строки в БД при добавление кириллицы?

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

    Во вторых - научитесь отладке. Если вы не знаете в чем вообще проблема, стоит посмотреть что и на каком этапе пошло не так, для этого в самом примитивном виде нужно использовать var_dump/print_r, ну или инструменты по типу xdebug.

    И в третьих, или скорее даже в нулевых - все работы с запросами нужно вести через подготовленные выражения, тогда не нужны будут эти танцы со странным кодом, не делающим ничего полезного. Естественно все таблицы и соединение с бд должны быть в соответствующей кодировке, в вашем случае это скорее всего utf8mb4.
    Ответ написан
    Комментировать
  • Как называют "сервисный сбор" в корзине?

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

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

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Это вообще не вопрос. Реальная проблема в том, как проверить, сколько физического места занимает папка пользователей "users"?
    Во первых если это реальная проблема - почему вопрос совершенно о другом?

    Во вторых - у вас в примере виндовый диск, что как бы странно для хостинга. В случае линуха все решается либо командой du -sm /your/directory/* либо установкой ncdu, который сильно быстрее, и соответственно что-то типа ncdu /your/directory/.
    Ответ написан
    7 комментариев
  • Как проверить нагрузку индексов на сайт?

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

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    xpath сам никуда не переходит. Это инструмент поиска по нодам внутри уже полученного хтмл/хмл, а не инструмент запросов.
    Ответ написан
    Комментировать
  • Как быстро загружать файлы на сервер?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не сочтите за грубость, но вас из крайности в крайность бросает. То вы не хотели связываться с бд так как это "слишком сложно" и хранили все в файлах, измываясь и над собой и над ребятами которые все это пытались как-то образумить... Сейчас есть большой шаг вперед - вы подружились с бд, но теперь, как в той поговорке - если в руках молоток - все кажется гвоздем... Конфиги из нескольких переменных проще хранить в файле настроек, например в формате JSON. Если уж очень хочется забить шуруп молотком - заведите табличку сеттингс, храните в ней пары ключ-значение, или вообще одну строку с тем же JSON.
    Ответ написан
    2 комментария
  • Есть ли готовое решение для создания пользовательской панели на базе MySQL для управления заданиями клиентов?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Звучит как ларавель + рбак + что-то типа вояджера. По описанию в 10 строчек звучит как распространенная задача, на деле ВСЕГДА всплывает миллион нюансов и "мы думали это само собой разумеется", по этому 99,9% что подходящего готового решения "искаропки" под ваши хотелки нет.
    Ответ написан
    Комментировать
  • Как добавить кнопку загрузки файла в форме TinyMCE?

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

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

    Как я могу вносить изменения на работающую html страницу, аналогично работе javascript кода, написанного выше
    Исходя из вышенаписанного - никак. Код клиентской части может быть написан только на яваскрипте.

    В общем случае ПРИ ИНИЦИАЛИЗАЦИИ страницы вы можете заранее сформировать что-либо в коде самого хтмл шаблона с помощью питона, но это происходит на стороне сервера, далее загруженная с сервера в браузер страничка может оперировать только яваскриптом.
    Ответ написан
    1 комментарий
  • Как сгенерировать pdf из кастомного html (Django Templates), чтобы работало стабильно?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    1) Берем хеадлесс хром
    2) скармливаем ему хтмл на печать в пдф с сохранением в файл
    3) Готовый файл отдаем пользователю
    3) Профит, все красиво, зайчики, графики, картинки...

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

    Нюансы:
    1) хтмл должен быть заточен под вывод на печать, цсс для принт медиа специфичен, но не особо сложен
    2) Для серверного хорма цсс/жс/картинки должны содержать полный локальный путь до файла
    3) Есть некоторый нюанс с яваскриптами, работающими "не мгновенно", иногда надо поиграться с задержкой, там в параметрах оно настраивается.
    Пример
    Ответ написан
    1 комментарий
  • Как реализовать настройки пользователя на сайте в laravel?

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

    и как ими манипулировать с базы данных.
    Обычный crud, сетим поля, сохраняем...
    Ответ написан
    Комментировать
  • Как веб-разработчикам обеспечить хорошую производительность CSS на устройствах начального уровня?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    6585e3e1d9aef372932044.jpeg
    Ответ написан
    Комментировать
  • Как избежать повтора в запросах многие ко многим?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1280px-SQL_Joins.svg.png

    UPD:
    Ребят JOIN правильный, но так как у шаблона может быть несколько категорий, выборка идет с дублирующими "ЯЧЕЙКАМИ",
    в вопросе идет речь про повторы (по умолчанию строк). Из картинок нифига не понятно чего вам не хватает.
    Если нужно сделать строки уникальными по какому-либо полю, следует сгруппировать соответственно по этому полю, тогда эти строки "схлопнутся" до одной. Беда в том что тогда вы не будете знать какая категория попадет по умолчанию в результат запроса, и соответственно нужно либо использовать агрегирующие функции в списке полей, либо сортирующие. Как вариант можно использовать дистинкт на соответствующее поле.
    Ответ написан
    4 комментария
  • Как обновить блок после удаления и добавления и получить данные для редактирования?

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

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

    Далее, по результату выполнения операции на бэкенде, исходя из данных полученных обратно аяксом уже решаем что делать, если ошибка - ничего не трогаем, если ошибки нет - добавляем/удаляем строки в таблице. Удаление - банально что-то типа del_button.closest('tr').delete() (емнип). С добавлением сложнее, но в целом ничего особенного, можно засовывать в конец списка, так как не вижу там у вас никакой сортировки при выборке. Строку формируете либо в колбэке, либо можно возвращать готовую в дополнительном поле возвращаемого жсона, и уже оттуда только добавить готовую новую ноду внутрь таблицы.

    Так же, учитывая что новые элементы не будут работать при добавлении, так как на них не навешены слушатели, либо каждый раз перезапускать навешивание листенеров, либо нормально сделать делегирование для кнопки удаления.
    Ответ написан
    Комментировать