Задать вопрос
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Почему не подхватывается брошенная корзина?

    @nikegk Автор вопроса
    Методом исключения получилось определить и решить проблему.

    Проблема была в том, что в init.php отлавливалось событие после авторизации и производился редикерт, таким же способом как описывалось тут.
    В тех.поддержке битрикса рассказали, что при таком такой реализации редиректа скорее всего не успевают отрабатывать какие-то методы api каталога, в следствие чего в системе у одного пользователя появляется два разных fuser_id.

    Отказ от такого редиректа решил и другой вопрос, который я задавал ранее.
    Ответ написан
    Комментировать
  • Почему мой php-код не выполняется?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    header('Content-Type: application/json');

    Таким образом вы говорите браузеру, что данные это JSON, потому он ваш HTML не рендерит.
    Закомментируйте эту строку и гляньте что будет
    Ответ написан
    2 комментария
  • Что значит знать REST API?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    В плане теории достаточно понимать всё, что есть по ссылке

    https://restfulapi.net/

    А если еще и в Richardson Maturity Model разобраться - то скорее всего на собеседовании начнет плавать даже проводящий его :)

    Спрашивают как правило про HTTP методы, правила формирования URL для взаимодействия с ресурсами, версионирование и коды ответов. В любом случае по ссылке всё есть.

    На фронтенде возможно еще могут спросить про библиотеки, которыми пользовалась, чтобы запросы делать, метод хранения авторизационного токена и еще какую-нибудь специфику
    Ответ написан
    Комментировать
  • Как через php перезагрузить nginx?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Не занимайтесь фигнёй. Есть такая замечательная вещь как IaC (Infrastructure as Code). Инструментов под это куча, а обращение к этому уже можно делать через php ибо эти инструменты имеют свой API. Подготавливаете конфигурации, обновляете их на php и перезапускаете развертывание. Все счастливы
    Ответ написан
    Комментировать
  • Что делает такая конструкция массива в php?

    alekseyHunter
    @alekseyHunter
    Android developer
    Это двумерный массив. Если $num или $item[$subItem] содержит строку, массив ассоциативный, то есть в качестве ключа выступает строка, а не число(0,1,2).
    $arr[''] [$num]
    Это одномерный массив.
    $item[$subItem]
    Ответ написан
    8 комментариев
  • Существует ли софт для отладки запроса?

    @bkosun
    В MySQL есть специальный оператор, который предоставляет информацию о том, как MySQL выполняет запрос.
    https://dev.mysql.com/doc/refman/8.0/en/explain.html

    Для визуального отображения результатов EXPLAIN можно использовать MySQL Workbench
    https://dev.mysql.com/doc/workbench/en/wb-performa...

    Так же Вы можете использовать инструменты профилирования dbForge Studio for MySQL
    https://www.devart.com/ru/dbforge/mysql/studio/que...
    Ответ написан
    Комментировать
  • Самописный проект: как узнать, его можно запустить на хостинге или же нужен VPS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    по каким признакам опытные программисты могут определить, что делать с этим проектом?
    Ищем то, что является точкой входа и отвечает за роутинг и погнали оттуда вглубь. Если проект самописный, то эффективным может оказаться пройти весь стек вызовов через XDebug - файлов, скорее всего, будет немного.

    Дополнительно стоит включить вывод всех ошибок и предупреждений - если много ворнингов, то это хороший индикатор низкого качества кода.
    Ответ написан
    Комментировать
  • Как удалить элемент из массива по ключу?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    unset($array['url']);
    $object = (object) $array;
    Ответ написан
    2 комментария
  • Почему не работает setcookie?

    1. Куки не поставятся, если уже был вывод (теги, пустые строки, пробелы, текст и т.п.)
    2. В глобальную переменную $_COOKIE они попадут только на следующем хите (после перезагрузки страницы)
    Пруф

    PS и почитайте про sql-инъекции...
    Ответ написан
    8 комментариев
  • Собираюсь убегать от 1С-Битрикс. А на что убегать-то?

    alexfilus
    @alexfilus
    Senior backend developer
    Рад что вас посетила такая идея всего через 4 года года использования Битрикса) А то некоторые по 10+ лет его насилуют, при том что стандартного функционала им не то что не хватает, а он конкретно мешает реализовывать нужную бизнес-логику.
    Я 5 лет работал с Битриксом, теперь соскочил на Laravel и не нарадуюсь никак)
    Но надо сперва определиться чего именно Вы хотите от магазина, и чего не хотите.
    Насчёт скорости в Гугле, это прежде всего вопрос вёрстки. Если там не совсем всё запущено, то практически любой магазин на Битриксе можно вывести в зелёную зону, с минимальными затратами. Прежде всего включить сжатие, объединение, перенос стилей/скриптов. Сжатие картинок (гугл очень много баллов снимает за картинки которые фактически больше того размера в котором они выводятся в браузер). И убедиться, что работает кеширование.
    Писать магазин с нуля... Да Вы безусловно получите именно то чего хотите, то что работает так как Вам надо. Но я не представляю самописный магазин с бюджетом меньше $10K. Либо это просто каталог собирающий заявки в CRM, либо это будет такое поделие, что живите лучше дальше с Битриксом.
    Ответ написан
    3 комментария
  • Собираюсь убегать от 1С-Битрикс. А на что убегать-то?

    php666
    @php666
    PHP-макака
    Много шишек, нервов, денег и времени отнял 1С-Битрикс. Решил уйти на самописанный сайт.
    самописанный сайт отнимет "нервов, денег и времени" в 10 раз больше. Но правда в том, что самописный интернет-магазин (как вы выразились "сайт без cms, написанный с нуля.) вам никто не сделает. Либо поставят open source, либо сделают такое, что это будет дырявое решето стоящее на протезах и костылях (и что в конечном счете с грохотом упадет).

    Позволить себе интернет-магазин заточенный чисто под себя могут не многие. Это дорого. Очень дорого. Для этого нужен постоянный штат разработчиков.
    Ответ написан
    3 комментария
  • PHP не видит пароль от БД?

    Опечаток нет, а как я понимаю суть в том, что пароль от БД пустой, но так и должно быть.

    Опечатка есть. И суть не в том что пароль пустой, а в том, что вы вместо запятой поставили в конце этой строки точку с запятой

    <?php
    
    $config = array(
      'title' => 'Blog.Net',
      'bd' => array(
        'server' => 'localhost',
        'username' => 'root',
        'password' => ''; // <--------
        'name' => 'test_bd'
      )
    );
    
     ?>
    Ответ написан
    6 комментариев
  • PHP не видит пароль от БД?

    @Vitsliputsli
    Проблема в ; в 8 строке, собственно как и написано в ошибке.
    Ответ написан
    2 комментария
  • Стоит ли называть домен AD по аналогии с внешним доменом?

    akelsey
    @akelsey
    Реальный DNS домен: company.ru/company.com
    Домен AD: ad.company.ru/ad.company.com

    "Бытующее мнение" связано с тем, что ранее, когда интернет был не столь распространён в компаниях (в начале 2000х), у компаний не было своих сайтов еще со своим корп. именем (а обычно были странички вроде isp-server.ru/~mycompany ), а выход в интернет был через прокси сервер по диалапу, админы не парились и называли свои домены company.ru. Когда же появлялся сайт company.ru, то появлялась проблема с внешним и внутренним DNS, т.к. совершенно два разных DNS сервера отвечали за эту зону, для внешних это один DNS, для внутренних другой. Получается такой Split-DNS, и всё бы ничего, но за зону внутри компании company.ru отвечает ваш контроллер домена, он и откликается на это имя, вроде бы сайт можно прописать алиасом на www.company.ru (и сказать всем в компании, что б открывали только так), но вдруг кто-то до вас завел в домен компьютер www, т.е. тут уже геморрой www.company.ru - занят.
    Вот по этому добавьте перед корп. именем понятный вам префикс, и не парьтесь, примеры:
    ad.company.ru, inside.company.ru, local.company.ru etc...
    Ответ написан
    Комментировать
  • Как можно передать данные из PHP в JS?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    современный и желательно простой

    echo json_encode($pdo->query("SELECT * FROM tablica")->fetchAll());
    Ответ написан
    Комментировать
  • Как можно передать данные из PHP в JS?

    Комментировать
  • Почему не работает викторина на php + mysql?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что вы делаете $mysqli->close (), а уже после этого getAnswer($result3) ? Естественно, соединение с сервером закрыли, как оно получит от БД данные?
    Ответ написан
    Комментировать
  • Взлом или развод?

    flapflapjack
    @flapflapjack
    на треть я прав
    Может ли злоумышленник, получив данные о списках таблиц так же получить и содержимое этих таблиц?


    В зависимости от степени экранирования символов при фильтре какого-то из параметров.

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

    Нужно как-то отследить место SQL-инъекции.

    Я в этом не спец, но например можно посмотреть лог mysql на наличие строки SHOW DATABASES или SHOW TABLES, а так же по поиску слова UNION, коим часто пользуются при создании инъекций. Найдя в логах время исполнения данного запроса можно глянуть в access.log у апача запрошенный адрес сайта, который был запрошен в то же время, что и инъекция в SQL.

    Имея точное расположение скрипта можно поставить вставки функции для логирования $_SERVER['REQUEST_URI'] и определить что за запрос был сделан, и от этого плясать.
    Ответ написан
    1 комментарий