• Почему плохо писать код в шаблонах?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    formData.append('avatar',...
    ...
    $file_to_upload = $_FILES['croppedImage']...
    Ответ написан
    1 комментарий
  • Почему SQL-запрос не захватывает строки с NULL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    NULL в мускуле не является нулем, это отдельный тип данных не входящий в сравнительные диапазоны и должен быть проверен отдельно, то есть надо добавить or currency_code IS NULL
    Ответ написан
    3 комментария
  • Как убрать повторяющие теги strong на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как брать только первую цифру ID категории?

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

    Как вариант решения конкретно этой задачи - можно так:

    foreach ($posts as $post) {
        $postsCat[trim(explode(',', $post['category'])[0])][] = $post['alt_name'];
    }
    unset($posts);
    Ответ написан
    Комментировать
  • Не отображается изображения сгенерированный DOMPDF?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Включите вывод ошибок и варнингов, будет хоть понятно что происходит
    2) Выведите var_dump($qr_image);, вполне возможно что там нифига нет.
    3) Вообще достаточно проверить есть ли файл который вы берете - file_exists($path_to_file);
    Ответ написан
  • Как загрузить файл и записать его имя в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $id видимо определен выше вызова функции, но как уже вам указали - область видимости внутри функции - локальная, все что не определено внутри тела функции для нее не существует, исключение - глобальные переменные.
    2) Научитесь пользоваться дебаггером, например xdebug, или хотя бы используйте var_dump().
    3) sql запросы СНАЧАЛА формируете в виде строки, затем передаете в вызов, тогда можно будет их вывести и посмотреть что с ними не так, подозреваю что в варианте который вы "поправили" проблема в отсутствии поля user_id которое скорее всего обязательное. Можно проверить напрямую введя этот запрос в консоль мускуля или через phpmyadmin.
    4) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
    Ответ написан
  • Стоит ли хранить зашифрованные данные пользователя в Local/Session Storage на клиенте?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    JS: если не закрывать браузер в течении всего этого времени - достаточно по setInterval() декркментировать значение каждые 24 часа ( 24*60*60 секунд). Если браузер закрывается - соответственно хранить время начала отсчета в куках или локалстораже, и от него уже отнимать количество дней / секунд прошедших от старта.

    PHP: В принципе все то же самое, только хранение стартовой даты будет в базе, или другом серверсайд хранилище.
    Ответ написан
    Комментировать
  • Просмотр dump mysql?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    это чисто примерный запрос, но т.к. я в sql полный профан, прошу объяснить что в нем неверного.

    Подскажите как можно снизить нагрузку и увеличить скорость запросов при условии оптимизированного кода и запросов.
    При условии оптимизированного кода и запросов нагрузка будет примерно никакой, так как у вас они судя по представленному explain ооочень далеки от "оптимизированных".
    Ответ написан
    Комментировать
  • Как скопировать текст с переносом строки из textarea?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) клиент копирует текст, он отображается в браузере с переносами строк
    Откуда копирует?
    Но если этот текст скопировать вручную из textarea, это будет всё как одна строка без переносов
    Сомневаюсь, просто преобразование идет чуть сложнее чем просто скопировал-вставил. Скорее всего перенос строки сначала преобразуется из какого-то "вордовского" формата в \n, а потом вы переносите его обратно, где его уже "не видно".
    Ответ написан
  • Как скачать картинку, которая хранится в blob?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . $fileData[0]['file_name']); 
    header('Content-Transfer-Encoding: binary');
    Ответ написан
    1 комментарий
  • Как загрузить файл и данные на сервер через AJAX?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $data = $_POST; - тупая трата памяти.
    2)
    header('Content-Type: application/json; charset=utf-8');
    Вы еще ничего не сделали, и уже выводите заголовки. Зачем?
    3) if ($data) { если дата что? Всегда давайте осмысленные кодовые описания, например !empty()
    4) Проверяете переменные $_POST, но $_FILES не проверяете? Нааайс... Как то уже определитесь...
    5) Вишенка на торте - в инпутах имена nameInput и newsText, однако на сервере мы упорно ищем поля name и email (????).
    Ответ написан
    Комментировать
  • Какие бывают фреймворки для веб?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Столкнулся с отсутствием адекватной систематизации фреймворков для веб (не в каком-то отдельном языке)
    ...
    У кого-нибудь есть идеи по систематизации этого добра? Критерии к выделению?
    Фронтенд/бэкенд, остальное из перечисленного либо не относится чисто к веб (тесты это вообще больше QA, нежели разработка), либо ошибочно вами оценены как нечто не относящееся к этим двум разделам (например materialize - A modern responsive front-end framework based on Material Design).
    Ответ написан
    9 комментариев
  • Как загрузить картинку на сервер на js/jquery без php?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Какой язык программирования для Back-end производительнее?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как исправить ошибку: Too many connections в MySQL?

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