Задать вопрос
  • Как сделать выборку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.w3resource.com/sql/aggregate-functions...

    Тупое решение "в лоб" будет что-то типа
    селект * 
    фром тбл 
    вэа юзер_ид ин(
              селект юзер_ид 
              фром тбл 
              вэа валуе_ид = 23
              груп бай валуе_ид
              хэвинг каунт(*) = 2
    ) т1
    энд валуе_ид = 22
    Ответ написан
    4 комментария
  • Как зашифровать на PHP строку в токен 32 символа?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    зашифровать массив (строка JSON) на пхп в красивый токен 32-64 символа (на подобие хэширования MD5) и иметь возможность его расшифровать.
    Надеюсь вы в курсе, что MD5 необратимый алгоритм? Именно по этому с его помощью можно получить строку фиксированной длинны (при этом получая небольшой процент коллизий) от строки любой длинны. Очевидно, что строку произвольной длинны, больше чем 32 или 64 символа, невозможно упаковать в стандартную длину (например 1000 символов запаковать в 64, иначе нафига нужны бы были архиваторы).

    Однако, можно сделать иначе: На сервере хранить строку (например в бд), а ключом к ней будет хэш от этой строки, можно даже с солью.
    Ответ написан
    Комментировать
  • Почему $(this).closest("form") не возвращает форму?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Все работает
    https://jsfiddle.net/2ykqwdt3/
    Ответ написан
    Комментировать
  • Как мне отобразить выключен ли элемент?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <?php 
    $elements = (тут вытаскиваем из бд все элементы);
    ?>
    ...
    <?php 
    if($elements[35]['status'] ==1){?>
    <div class="absolute top-[514px] left-[30px]" style="transform: rotate(15deg);">
    ...
    <?php } ?>
    Ответ написан
    2 комментария
  • Стоит ли работать с Drupal в 2022?

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

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Задумался над тем, что бы попробовать перевести свою страницу на формат без перезагрузки всей страницы, а лишь ее основы внутри.
    Это называется SPA (single page application), и не всегда это хорошая идея.

    Все сводится к тому, что делать нужно это на Jquery.
    Плохая идея, для этого есть совершенно другие, более подходящие инструменты - react, vue...

    Но после этого страница не перезагружалась, а просто принимала эти данные и обновляла информацию на всей странице, выводя пользователю эту же страницу, но с новыми результатами?
    В общем случае используют несколько приемов: Урл подменяют с помощью history pushState, запросы отправляют через fetch или средствами фреймворка, бэкенд при этом обычно отдает не хтмл, а json, по сути передавая только нужные данные, из которых фронтенд строит уже нужный хтмл из компонент.
    Ответ написан
    1 комментарий
  • Как убрать ограничение в 1M на загрузку файлов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    php.ini
    memory_limit = 32M
    upload_max_filesize = 32M
    post_max_size = 32M

    так же, неплохо бы проверить что вы редактируете нужный php.ini, запустив phpinfo() и проверив путь до php.ini, в вашем конфиге указан /etc/php/7.4/fpm/php.ini

    nginx.conf
    client_max_body_size 32M;
    Bash:
    /sbin/nginx -s reload
    или
    sudo systemctl reload nginx.service

    Сейчас же в конфиге php стоит 8мб, ровно столько же отображается если сделать phpinfo();
    63d0fe614a517216751258.jpeg
    Ответ написан
    1 комментарий
  • Зачем нужна сортировка пузырьком?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);
    file_put_contents("ip.txt", date('Y-m-d H:i:s') . ' : ' $_SERVER['REMOTE_ADDR']."\n" , FILE_APPEND);
    Ну и смотрите ошибки, скорее всего права кривые.
    Ответ написан
    2 комментария
  • Как убрать проверку на содержимое?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    this.textContent = this.textContent != "2" ? "2" : "1";
    Ответ написан
    4 комментария
  • Не загружается файл на сервер php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)$path = "../imagepost/".$_FILES['photo']['name'];так делать нельзя, путь надо писать абсолютный.
    2)
    if($_COOKIE['user'] == ''){
      echo 'У вас нету аккаунта(';
      exit;
    }
    Проверка куки на логин это даже не смешно. Я сам у себя могу установить любые куки, и все, я уже залогинен, нормально?
    3) Ну и где вы этот файл переносите в рабочую папку?
    Ответ написан
    9 комментариев
  • Первый раз форма срабатывает, второй раз обновление страницы AJAX?

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

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

    Второе сильно быстрее, первое больше нацелено на развитие собственных скилов.
    Ответ написан
    4 комментария
  • Как сделать отступы?

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Что тут не так?
    тут все так. Решетка есть? Есть. Четыре цифры есть? Есть. Что там дальше должно быть вы в условии не прописали, по этому паттерн полностью соответствует строке.
    Ответ написан
    Комментировать
  • Почему не отправляется запрос API?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В курле я указал эти параметры, сообщение не отправляется, но.
    Если я сам вписываю сообщение вместо переменной $fsend, оно отправляется.

    CURLOPT_URL => 'https://api.lalala.com/v1/messages?client_id='.$fid.'&text='.urlencode($fsend),
    Ответ написан
    6 комментариев
  • Как правильно использовать redis?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Что в этой схеме надо поменять?
    выкинуть редис?

    Обычно редис используют для кеширования. В редисе есть смысл хранить холодные данные, выборка по которым занимает много времени/ресурсов, а изменения наступают достаточно редко. Хороший пример - лента новостей, данные выбранные в ленту актуальны примерно 5 минут, что позволяет делать запросы в бд 1 раз в 5 минут, а не 50 раз в секунду.

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

    А, ну и еще, при сбое сервера все данные в редисе будут потеряны, по этому там можно держать только данные полученные из бд или другого источника постоянного хранения.
    Ответ написан
    1 комментарий
  • Что может содержать DTO?

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