• Как организовать хранение заявок и клиентов в БД?

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

    Делаете таблицу для пользователей, в которой присутствуют поля для телефона и для эл.почты. И записываете либо телефон, либо эл. почту и потом выводите где нужно соответствующее поле. С таблицами по заявкам связываете пользователей по user_id.

    Нужно ли создавать две таблицы для клиентов, которые оставляют заявки на продукты где требуется номер телефона и таблицу для клиентов где требуется электронная почта?

    Нет, не нужно. Просто выводите там где нужно телефон, а в другом случае эл.почту.

    Таблица users: id, name, phone_number, email;
    Таблица application_product: id, user_id, message;

    Потом вы можете делать запрос к базе данных, например, так:
    SELECT u.name, u.email, ap.message
    FROM application_product ap
        JOIN users u ON ap.user_id = u.id
    WHERE ...


    Для application_back_call соответственно выбираете u.phone_number вместо u.email.
    Ответ написан
    3 комментария
  • Как реализовать статусы пользователя online/offline - PHP?

    @rPman
    Пожалуйста, поднимите у себя websocket, ресурсов это много не займет, зато возможности у вас появятся огромные, вы сможете не только точно знать момент, когда пользователь закрыл страницу или отключил интернет, но и сможете со стороны сервера эффективно передавать сигналы клиентам (чат например)
    Ответ написан
    2 комментария
  • Bootstrap и 5 элементов в ряд?

    dicem
    @dicem
    Извини, а зачем тут вобще bootstrap?
    На родительский блок:
    display: flex;
    justify-content: space-between;
    align-items: center;
    Ответ написан
    9 комментариев
  • Как изменить home на главная в Yii2?

    Нужно в конфиге приложения указать русский язык
    $config = [
    'language' => 'ru-RU', // язык приложения
    ....
    ];
    Ответ написан
    Комментировать
  • Как написать свой аналог DOCS в Yii2?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    C нуля если у вас не завалялось несколько лямов вечено зеленых инвестиций, даже начинать не стоит.
    Как альтернатива - можете посмотреть в сторону Onlyoffice, правда там не точто Yii2, там даже про php думать не стоит.
    Ответ написан
    4 комментария
  • Как подключить jquery в Yii2?

    Horik_off
    @Horik_off
    Developer
    Меня одного бесят умники, которые посылают "документацию почитать"? Смотрел я в документацию, но так и не понял по какому принципу публикация рессурсов assetsManager'ом делается. Лучше уж промолчать совсем, чем такие советы давать.
    Ответ написан
    1 комментарий
  • Ajax подгрузка в GridView Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    GridView тут не при чем, он просто строит таблицу на основе данных, которые Вы ему кормите, а кормите Вы ему данные в ActiveDataProvider, у которого есть pagination, в котом содержится объект yii\data\Pagination. В нем есть данные о текущем кол-ве записей, значит просто обворачиваем все в pjax и пишем js который будет по скролу до какого-то момента, запускать pjax уже по новому url, с новым limit.
    Есть готовое решение, не пробовал, но звезд много, так что должно работать:
    https://github.com/kop/yii2-scroll-pager
    Гугл не дает Вам результатов, потому что ищите gridView , а он не при чем для данной задачи, надо искать "yii2 scroll pager" или что-то подобное
    Ответ написан
    5 комментариев
  • Хранить данные в бд или делать расчеты каждый раз?

    @Fortop
    Tech/Team lead
    Вопрос, конечно, не про калькулятор.

    Хранить или не хранить решается по нескольким критериям.
    1. Как вы указали в случае сложных расчётов (хранение выступает аналогом кеширования)
    2. Данные будут использоваться для агрегатов (других расчётов и статистики)

    Если ответ "да" на один из пунктов, то хранить.
    Если везде ответ "нет", то не хранить.
    Ответ написан
    3 комментария
  • Можно ли с локального сервера отправить письмо под любым именем?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Можно.
    Но все нормальные почтовые сервера отправят его в помойку не глядя.
    Ответ написан
    4 комментария
  • Можно ли с локального сервера отправить письмо под любым именем?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Можно.
    Но в заголовке все равно будет написано откуда на самом деле пришло письмо. Множество спамеров об этом не догадывается и продолжает слать свой треш, над которым я иногда дико ржу.

    Можно доработать сервер, чтобы он подставлял произвольные заголовки, но слава Богу, все эти дебилы, пишушие письма "из налоговой", "из суда" и прочий собачий бред - уже приучили не верить ничему что там написано.
    Ответ написан
    1 комментарий
  • Вопрос с собеседования: Есть ли в PHP нативная возможность инициализировать переменную как в функции preg_match()?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Точно так же и делается

    function test(&$param)
    {
        $param = 123;
    }
    
    test($parameter);
    
    echo $parameter;
    Ответ написан
    Комментировать
  • Почему может создаваться большое количество файлов сессий на сервере Ubuntu?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Сессии сами не создаются, их создает РНР при обращении к сайту.
    Сколько обращений - столько сессий.

    Соответственно, смотреть надо по двум направлениям
    1. проверить, не долбит ли кто-то запросами, и заблокировать или ограничить, например использовать Rate Limit у NGINX
    2. файловая система - самое убогое хранилище для сессий, и используется по умолчанию только потому, что для всех других нужно указывать параметры подключения. Соответственно, вместо файлов использовать базу данных.

    Плюс надо смотреть по коду. Если сайт создает сессию на откровенно мусорный запрос, то, возможно, этого не стоит делать. Ну и нельзя сбрасывать со счетов гениальных скриптописателей, которые сами себе создают нагрузку на сайт. Не раз и не два я видел любителей инклюдить локальные файлы по HTTP.
    Ответ написан
    Комментировать
  • Есть ли смысл учить Golang если уже хорошо знаешь .NET?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    1. Из коробки компилируется в единственный, сравнительно компактный, бинарь без зависимостей от рантайма и окружения.
    (и без подводных, в отличие от full aot и assembly trimming)

    2. Сможешь рассматривать вакансии, где требуется Golang, если собираешься искать работу.
    3. Сможешь нанимать go-шников со всеми вытекающими, если будешь искать разрабов в свой проект.
    4. Если твой проект должен будет активно взаимодействовать, например, с kubernetes и прочими devops-штуками, то Go может быть чуть удобнее, тк практически все эти инструменты написаны на Go и для работы с ними имеются готовые библиотеки, которые, вероятно, будут лучше, чем их альтернативы для .NET.
    Ответ написан
    3 комментария
  • Есть ли на PHP сокращенный перебор массива?

    foreach($array as $item) {
    // тут ваш код
    }

    https://www.php.net/manual/ru/control-structures.f...
    Ответ написан
    Комментировать
  • Как работать с FFMPEG без ссылок на файлы?

    kawabanga
    @kawabanga
    Если условие что в 2 секунды любое аудио декодируется и вам нужно лишь правильно отправлять все через ajax, то formdata js в помощь

    ~JS
    var formData = new FormData();
    formData.append('file', fileInput.files[0]);
    
    $.ajax({
      url: 'upload.php',
      method: 'POST',
      data: formData,
      contentType: false,
      processData: false,
      success: function(response) {
        console.log('File uploaded successfully');
      },
      error: function(jqXHR, textStatus, errorMessage) {
        console.log('File upload failed: ' + errorMessage);
      }
    });


    ~PHP
    require_once '/public_html/vendor/autoload.php'; 
    $ffmpeg = FFMpeg\FFMpeg::create();
    $mp3Format = new FFMpeg\Format\Audio\Mp3(); 
    $videoFolderPath='/public_html';
    
    if(!isset($_FILES['file'])) {
      return 'no file';
    }
    
    $tempName = $_FILES['file']['tmp_name'];
    
    
    $audioObj = $ffmpeg->open($tempName);    
    $audioObj->save($mp3Format, $videoFolderPath.'/myfile.mp3');
    Ответ написан
    1 комментарий
  • Какой дистрибутив Linux пойдёт на мой ноутбук для веб разработки?

    hint000
    @hint000
    у админа три руки
    Любой, с которым вы лучше знакомы. Или тот, который стоит у знакомого вам гуру.
    Прямо скажем, ноутбук слаб для разработки, так что просто не запускайте одновременно много программ.
    Ответ написан
    Комментировать
  • Как с помощью PHP скачивать файлы с подобных ссылок?

    Stalker_RED
    @Stalker_RED
    Потому что по замыслу создателей этого сайта у вас сперва должна открыться страница которая установит куку, затем страница перезагрузится, и уже с кукой начнется скачивание.
    Скачайте через браузер, скопируйте куку, добавьте ее в контекст.
    Возможно придется еще и время в куке правильное выставлять, если они его проверяют.

    'http'=> [
        'header'=>"Cookie: beget=begetok; foo=bar;"
      ]
    Ответ написан
    Комментировать
  • Как сделать уведомление о завершении работы скрипта?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Этот вопрос не имеет отношения к РНР.
    А только к базовым навыкам работы с операционной системой.
    В простейшем случае можно написать бат файл, в котором под своей командой пишете любую другую, от проигрывания звукового файла до запуска любой программы. Которая выполнится по завершении первой
    Можно то же самое написать в одну строчку php my.php & echo ^G
    После амперсанда опять же, пишется все что угодно.

    писать set_time_limit(0) в консольоных скриптах кстати не нужно. Там лимита нет по умолчанию
    Ответ написан
    Комментировать
  • Как сформировать ldap_search с кириллицей на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Включите ldapV3
    ldap_set_option(LDAP_OPT_PROTOCOL_VERSION, 3);
    Тогда должен нормально работать поиск по UTF-8-строкам и фильтр будет
    (&(&(objectClass=user)(objectCategory=PERSON))(|(memberof=CN=Access-VPN-BitrixVM,OU=VPN,OU=Access,OU=Groups,OU=CO,DC=company,DC=local)(memberof=CN=Отдел клиентского сервиса \(Call-центр\),OU=Depart,OU=Groups,OU=CO,DC=company,DC=local)))
    Ответ написан
    1 комментарий
  • Как использовать структуры данных на практике?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мысль совершенно правильная.

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

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

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