Задать вопрос
  • Почему сайты на сервере работают медленно?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Гадание на листьях опавших с ветвей сакуры нифига не даст.

    Тупо ставьте метки по ходу выполнения кода, в конце считайте время выполнения кусков, смотрите какой кусок тормозит, разбивайте его на более мелкие таймфреймы, пока не вычлените проблемный кусок. Из опыта - 90% что тормозят запросы в бд, но вышеописанным способом это легко вычисляется.

    Так же есть вероятность что проблема не на бэкенде, а в подгрузке ресурсов типа фонтов или скриптов со сторонних сервисов, которые сейчас работают не очень стабильно (ну да, "а что случилось?"). Опять же легко проверяется разницей между выполнением всего кода и полной загрузкой страницы.
    Ответ написан
    2 комментария
  • Насколько полезно читать книги?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько полезно читать книги по програмированию и какое у них преимущество
    Книги читать полезно в любом случае, но эффект будет ТОЛЬКО если вы будете применять прочитанное на практике, просто почитать и запомнить работать не будет.

    что с
    видеокурсами или самоличному изучению того или иного путём поисков этого в гугле?
    : Книга - отдельный толковый труд, хорошо продуманный, отредактированный, структурированный и выдающий материал последовательно и без больших пропусков. То есть отличается цельностью и подробностью.

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

    И практика, без ее как книжки, так и видеокурсы бесполезны.
    Ответ написан
    1 комментарий
  • Нужно ль изучать математику параллельно изучению программирования?

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

    В остальном, хотелось бы обратить ваше внимание на пункты 3.2, 3.3,3.4 и 3.6 правил сервиса.
    Ответ написан
    Комментировать
  • Как составить sql запрос для вывода Новость дня?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    group by + count()
    Ответ написан
  • Почему при отправке данных на почте пустые сроки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов, собсно, 2:
    1) Не туда
    2) Не так

    В первом случае убедитесь что вы отправляете данные на нужный роут. Вероятность не большая, но есть.

    Во втором случае достаточно проверить в каком формате вы отправляете данные, и какие данные приходят. Формат отправки можно посмотреть в нетворке, а в коде первыми строками проверить что приходит в $_POST - var_dump($_POST);exit(); Возможно (и похоже на то) что вы отправляете форму аяксом, а данные передаете в теле как жсон например. Естественно, при этом ловить что либо в пост переменных бесполезно ), тут нужно будет щупать php://input
    Ответ написан
    4 комментария
  • Как упростить примитивную тернарную логику?

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

    Если смысл в сокращении количества вызовов, то
    $res = anyFunc($var); if(!empty($res))return $res; или, как написал коротко iljaGolubev, if($ret= anyFunc($var)) return $ret;, но я предпочитаю разбивать присвоение и проверку в разных строках, для читаемости.
    Ответ написан
  • Почему функция обрабатывается лишь раз?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);
    Ответ написан
    2 комментария
  • Как сделать что бы после отправки формы со страницы, после ручного обновления страницы повторно повторно не отправлялась форма с данными?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    После обработки формы делайте редирект на другую страничку методом get (например на страничку с подтверждением - "все прошло ок, данные загружены"...).
    У вас же вроде реализована переадресация обратно на формуredirect(url_for('add_slab')), но в форме не выводится флш месадж через get_flashed_messages(), который сетится в обработчике - flash('Сляб добавлен к карте заказа', 'info')
    Ответ написан
    Комментировать
  • Куда мне развиваться в веб программировании?

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

    По уму, если именно на заказ - вордпресс и вперед. Дешево и сердито. Если что-то сложное и с уникальным функционалом - фреймворки, Джанго под пайтон или лару под пых... На фронтенд соответственно вуй или реакт. Это стандартный набро фулстака на сегодня.
    Ответ написан
  • Как вернуть данные после обработки POST?

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

    В случае аякса возвращается json с ошибками, хорошей практикой будет завести отдельное поле error, которое служит для яваскрипта сигналом обработки ошибки, и поле, содержащее текст ошибки. После вывода ошибки через echo, скрипт завершают - exit(); В яваскрипте аякса отправленные данные попадают в переменную, прописанную как аргумент success функции - success(data){...}

    В случае субмита формы - массив с ошибками пишется в сессию, туда же записываются все принятые значения из $_POST, чтобы на исходной форме пользователю не приходилось снова все вписывать в поля. Ну и выполняется редирект на форму, поля пишутся из сессии, выводится ошибка из сессии, сессия чистится. Считается хорошим тоном поставить exit(); после редиректа, хотя в современных версиях пхп скрипт завершается автоматически.
    Ответ написан
    Комментировать
  • Не могу юзать namespace?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не могу прочесть, тут что-то на эльфийском... (с) Фродо


    Есть несколько сайтов на нативном php
    Я правильно понимаю что у вас есть доступ к коду (если такие подробности известны), но вы в нем не особо разбираетесь (так как что за данные и откуда вы не написали)?

    Есть главный сайт - crm, необходимо в базу этого сайта добавлять данные с других сайтов, в какую-то определенную таблицу
    Ну, допустим, то есть на других сайтах тоже бд? Или какие данные нужно добавлять?

    возможно ли вообще такое реализовать?
    Конечно, вопрос только что конкретно нужно и что конкретно вы сможете реализовать. Вариантов масса:
    - Написать парсер со стороны crm, по таймеру обновлять данные с сайтов
    - Написать апи для каждого сайта, и через него из crm запрашивать обновления
    - Написать апи на crm и на сайтах при добавлении отправлять дубль в апи crm
    - Тупо перенести нужные таблицы дампом с сайтов на сервер crm
    ну и еще куча идей, тут уже от кучи обстоятельств зависит как удобнее/проще делать...
    Ответ написан
  • Как автоматически выводить данные с полученного post/get запроса?

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Объясню на примере, у меня есть 2 таблицы.
    1 - это список всех клиентов.
    2 - это список активных клиентов.
    Это неверный подход. Для лучшего понимания советую почитать про нормальные формы бд.

    Если коротко и сильно упрощенно - есть принцип, по которому все что можно узнать об объекте из 1 таблицы или поля, даже если для этого нужны какие-то манипуляции (например объединения таблиц или вычисления значений, например сумма/минимум/максимум) не должно дублироваться. В вашем случае у вас все решается дополнительным полем, которое будет однозначно отделять группу активных от неактивных, при этом дублирования данных не будет, все записи будут по прежнему уникальны.
    Ответ написан
    Комментировать
  • Ajax подключённый к форме не работает?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $('#form').on('submit',function (e) {
      e.preventDefault();
    ...
    Ответ написан
    2 комментария
  • В чем причина ошибки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    expects parameter 1 to be mysqli_result, bool given
    ожидаем результат запроса, но получаем булеан. Почему? 99% кривой запрос, но этого мы не узнаем, так как кода нету. Для нормального отображения ошибок запросов, нужно добавить после соединения
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    2)
    Здесь уже проблема с хедером
    Да нет, с хедером все ок. Проблема что тут его уже нельзя отправить, так как вы что-то вывели в браузер (скорее всего как раз ошибку из п.1). Что легко гуглится (Результатов: примерно 6 170 000).
    Ответ написан
  • Что не так с регуляркой?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    #_adv_([\d]){1,4}_#gui
    Ответ написан
  • Что делать, если не можешь понять?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Гуглить + Читать разные источники, в каком-то будет более простое и понятное объяснение, в каком-то чуть сложнее, когда с общими положениями все станет понятно - снова прочтите документацию/непонятное объяснение, скоре всего все встанет на места.
    Ответ написан
    Комментировать
  • Выводит полностью код php что делать?

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    display: flex;
    align-items: end;
    Ответ написан
    Комментировать