• На каком CMS лучше делать проекты?

    WP конечно, чего тут думать.

    От CMS для небольших и средних проектов требуется имхо только одно - популярность.
    Чтобы потом не искать каких-то модулей типы webp, yml, seo и т.п. Больше готовых решений. Больше шаблонов. Больше ответов на форумах, больше специалистов, значит дешевле доработки и т.п.

    Поэтому просто смотрите что там нынче популярно: https://itrack.ru/research/cmsrate/
    WP = 43% от всех сайтов, Joomla = 9%
    Думаю, что всё понятно?

    Не лишним будет посмотреть и динамику развития популярности CMS за период, чтобы понять куда ветер дует.
    С 2013 года WP стабильно растет, Joomla стабильно падает - https://itrack.ru/research/cmsrate/dynamic/11/60/
    Можно сказать что WP растет за счет Joomla ))) сам раньше работал с joomla, пока не перешел на WP, еще ни разу не пожалел.
    Ответ написан
    2 комментария
  • CentOS, Debian, Ubuntu что выбрать, если...?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Не хотите проблем в дальнейшем - ТОЛЬКО Debian!
    Ответ написан
    Комментировать
  • Как читать логи реквестов в реальном времени?

    tail -f как нормальные люди
    tail -f | grep нужный текст если тебе нужно что-то конкретное
    multitail если ты ленивый
    multitail file1.txt file2.txt
    и тд
    Ответ написан
    Комментировать
  • Как читать логи реквестов в реальном времени?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    tail
    Ответ написан
    Комментировать
  • Почему mariadb выдает ошибку: Packets out of order. Expected 0 received 1. Packet size=69?

    WebDev2030
    @WebDev2030 Автор вопроса
    Битриксоид до мозга и костей
    В общем проблема была именно в отсутствии root для любого хоста. Зашел в контейнер, далее вошел в mysql: mysql -u root -p Вводим пароль, если есть и далее
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
    Ответ написан
    Комментировать
  • Два вопроса по SEO (nofollow и расположение текста в коде)?

    Alexi
    @Alexi
    Использование nofollow — не метод обмана ПС и влияния на ранжирование, а критерий хорошего и качественного сайта. Закрывать стоит «чужие» внешние ссылки — ссылки на соцсети, счетчики и прочие кнопки, как уже сказали выше, все нежелательные кроме тематических ссылок или ссылок на свои проекты.
    SEO-текст — устаревшее понятие и критерий плохого и заспамленного сайта. Никакого SEO-контента и SEO-копирайтинга не должно быть в принципе, на сайте должен быть легко читаемый и качественный контент для людей. Без всякой плотности ключевых слов и прочего.
    И то, и другое написано в руководстве Google по поисковой оптимизации, если не доверяете сотруднику — спросите, насколько сайт приведен в соответствие с требованиями ПС по пунктам.
    Ответ написан
    Комментировать
  • Хуже ли продвигаются домены .site чем .ru? Или разницы нету?

    Kozack
    @Kozack
    Thinking about a11y
    Вообще пофиг. Решает контент, его доступность. А там хоть по IP отдавайте
    Ответ написан
  • Нужно ли проверять каждое обращение к БД на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очень хороший вопрос.
    Он вызван одной из родовых болезней РНР, в котором по какой-то причине именно операции с базой данных традиционно проверяются на каждый чих. При этом на все остальные операции почему-то никто не обращает внимания.

    Большинство складывателей букв на РНР об этом не задумываются вообще, и очень хорошо что тебе пришел в голову этот вопрос. А ответ на него очень простой:

    Проверять обращения к БД не нужно вообще

    (за исключением нескольких специальных случаев, когда есть определенный сецнарий обработки ошибки)
    Если же такого сценария нет, то никак проверять не нужно. Просто потому, что обращения к БД ничем не отличаются от любого другого кода.
    И поскольку ты не проверяешь каждый include или там оператор деления, то не нужно и проверять запросы к БД. Их надо оставить в покое. И первый, и каждый по отдельности, и все 5 разом.

    А вот что нужно сделать - это договориться с РНР, чтобы он сам сообщал тебе об ошибках в запросах. Для mysqli надо написать перед коннектом
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    Для ПДО при соединении выставить в настройках соединения

    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

    Всё. Больше ничего для обращений к БД делать не надо.

    А вот обработчик ошибок, общий для всего кода, а не только для работы с БД, настроить желательно.
    Чтобы AJAX-скрипт подписки получал соответствующий НТТР статус при любой ошибке, которая может возникнуть на сервере.
    Ну и разумеется AJAX-скрипт подписки должен проверять НТТР статус, и обрабатывать ответ только если статус= 200
    Пример обработчика можно посмотреть здесь

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

    *На самом деле в транзакцию имеет смысл заключать только запросы, изменяющие данные. То есть все, кроме первого.

    Соотсветственно, если ПДО настроен на выброс исключений, то при ошибке запроса
    - пдо выбросит ислючение
    - которое будет поймано обработчиком ошибок
    - который выведет код ошибки и завершит работу РНР скрипта
    - при завершении скрипта РНР закроет соединение с БД
    - БД при закрытии соединения автоматически откатит незавершенную транзакцию

    причем без обработчика ошибок будет всё то же самое, только клиенту уйдет код не 500 а 200

    то есть для того чтобы убедиться в том что все запросы выполнились корректно, надо

    1. выставить для ПДО режим исключений
    2. перед первым запросом написать $pdo->begin();
    3. после последнего запроса написать $pdo->commit();
    Ответ написан
    4 комментария
  • Как выдавать пустую страницу в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Логика конечно на грани фантастики.
    Кто видел вопросы на форуме по пэхапе, над анекдотами не смеётся.

    Если сервер ложится под атакой, то разумеется, виновата выдача других цыферок. Если отдавать клиенту цифры 503, то кранты, весь сервер лежит. А если выдавать 200 - то зашибись все летать будет. Л - логика.
    Ответ написан
    Комментировать
  • Не работает сайт по SSL + H2, без H2 работает. В чем может быть проблема?

    @Anton_a46 Автор вопроса
    С конфигом Apache + Nginx решения не нашел. Поставил на сервер Nginx(Без Apache), с ним h2 работает корректно, проблем не возникает
    Ответ написан
    Комментировать
  • Чем плохо выносить повторяющиеся элементы дизайна в отдельные файлы и подключать их потом с помощью PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тут, как обычно, не одна проблема, а три.

    Первая проблема - это, как всегда, неумение задавать вопросы.
    Вот и сейчас - вопрос "чем плохо ходить пешком?" Что можно ответить на этот вопрос?
    Но потом выясняется что вопрос на самом деле "Я живу в 20 километрах от работы. Чем плохо ходить на работу пешком?".

    То есть вопрос у нас на самом деле, "Чем плохо выносить повторяющиеся элементы HTML в отдельные файлы и подключать их потом с помощью include?". Этот вопрос уже будет более осмысленный, и на него даже можно дать ответ не выглядя при этом идиотом.

    Вторая проблема заключается в том, что подход с "хидером и футером" реально неудобен и устарел уже лет 20 как. И вместо него используются шаблонизаторы. Тупо редактировать хтмл удобнее когда он лежит в одном файле, а не в header.php. footer.php. menu.php, banners.php и еще 10 файлах.
    И это я даже не заикаюсь о случае, когда на разных страницах надо поключать разные файлы стилей и скриптов.

    И третья проблема заключается в том, что хотя в принципе и можно что-то несложное накалякать с хидером и футером, но поголовно все новички все равно клепают их неправильно - а именно вкрячивают хидер до того, как скрипт вообще начнет работу. И потом имеют все прелести невозможности вывести НТТР заголовок, поменять что-то в хидере в зависимости от выводимых данных, поменять формат вывода или аварийно завершить работу.
    Ответ написан
    Комментировать
  • Встраивание 3d тура (flash-player) на сайт WordPress?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Флэш умер, флэш умер. Сообщите это заказчику
    Ответ написан
    5 комментариев
  • Как можно вывести 5 имен через запятую?

    Target1
    @Target1
    shuffle($arr);
    $result = implode(',',array_slice($arr,0,5)).".";
    print_r($result);
    Ответ написан
    Комментировать
  • Какой User-Agent у бота вконтакте?

    @egorinsk
    У вас кривая система авторизации — вам ее исправлять надо, а не ботов различать. Например, как быстрое решение, вместо принудительного редиректа можно в ифрейме показывать форму авторизации.
    Ответ написан
    1 комментарий
  • Примеры проектов PHP(прокомментированных). Где найти?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Для популярных фреймворков обычно есть демо приложение, нп. Symfony demo app. У Laravel был курс "как был создан Laracasts", т.е. есть живой проект Laracasts и скринкаст по его созданию в целях обучения. В целом на гитхабе есть море готовых приложений разного качества и сложности, главное погуглить основательно)

    Прикол ООП в том, что выучить конструкции вроде классов и интерфейсов несложно, сложно понять - где, зачем и как их применять. На помощь приходят шаблоны проектирования, принципы SOLID, книги по архитектуре приложений и немного современных веяний. Нужно уделять время изучению этих основ, просто комментировать их в коде вне учебных материалов никто не будет, потому что это общепринятые практики. Комментируют в коде только спорные решения или специфическую информацию, которая касается бизнес-логики, а не архитектуры
    Ответ написан
    1 комментарий
  • Как подключится к базе данных, через PDO или mysqli?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    PDO примерно в 10 раз удобнее, чем mysqli, поэтому по возможности лучше выбирать его.
    Тем более что у пдо только объектный стиль, и нет проблемы выбора стиля.

    Чисто ради буквального ответа на вопрос
    Как подключиться к Mysql через PDO
    Как подключиться к Mysql через mysqli
    Ответ написан
    Комментировать
  • Как лучше проверять приходящие данные PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это все полная бессмыслица.
    "типо от атак" никакие "проверки" вообще не нужны
    функция testInput - это вообще какаой-то ужас, который кочует из отного видео в другое

    Надо понимать две вещи

    1. "от атак" ничего никогда не проверяют. Нормально написанному коду никакие атаки не страшны. Поэтому надо просто писать нормальный код.
    2. проверять данные в принципе можно. Но не "от атак", а просто для удобства. Нормальное рест апи всегда скажет клиенту, если у него данные не в том формате. Только в случае, если проверка не прошла, надо не молча корёжить данные, а вежливо ответить что они не подходят. А сейчас у тебя код только тупо портит входящие данные.
    Ответ написан
    4 комментария
  • Где можно заработать копирайтеру?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Ничего не бывает так просто. Регистрируйтесь на всех биржах фриланса: fl.ru, freelansim, upwork.com и т.д. И нарабатывайте репутацию, со временем у вас появятся постоянные заказчики.

    Если постоянных заказчиков нет, то это битва за заказы, я бы даже сказал бойня. А как вы хотели? Это рыночная экономика и вы не монополист.
    Ответ написан
  • ИИ заменит дизайнеров?

    Hcuy
    @Hcuy
    Профессионально считаю ворон.
    Дизайнер обладает уникальной способностью: знать что хочет заказчик, когда заказчики не понимает что хочет. Вряд ли ИИ сможет достигнуть таких высот.
    Ответ написан
    Комментировать
  • Не отрабатывает htmlspecialchars php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых, как заметил Adamos, следите за именованием переменных, $seacrh это конечно сильно...
    Во вторых -
    но скрипт все равно можно вывести
    да, можно вывести, но нельзя выполнить, о чем вам справедливо заметил FanatPHP, почувствуйте разницу.

    Вообще, все плохо. Для очистки данных от тегов есть strip_tags(), но вы почему то упорно тупите и не читаете документацию и не пользуетесь поиском из принципа.
    Ответ написан
    2 комментария