Задать вопрос
  • Не срабатывает изменения параметров ТП в init, почему?

    Yuriy Lyadov, а при этом каталоги bitrix и local физически размещены в одном каталоге, симлинков нет?
    Написано
  • Не срабатывает изменения параметров ТП в init, почему?

    Yuriy Lyadov, а где был размещён init.php ?
    я спрашиваю, потому что в админке не определён сайт ( старый косяк Битрикса). Поэтому код, размещённый в /bitrix/php_interface/init.php и /local/php_interface/init.php работает, а в, например, /local/php_interface/s1/init.php - нет ( так как файл не подключается ).

    (Ещё бывают хитрые варианты с симлинками, когда файл тоже не подключается, но это сложно описать вкратце)
    Написано
  • Как проксировать через nginx несколько служб?

    а почему не разнести на разные хосты? типа grafana.api.test.org .
    Как я понял вопрос, у Вас проблема в том, что для Grafana нужен /api и для кого-то ещё нужен /api
    Написано
  • Как сделать сложное условие с циклами?

    Роман , Я попробую выразить задачу математически:.
    Пусть t - ставка, f(t) - функция комиссии, g(t) - функция таможенного сбора.
    Требуется для известного s подобрать такое t, что t+f(t)+g(t) <=s
    Я правильно понял?
    Написано
  • Как сделать сложное условие с циклами?

    Вы переусложнили логику функций. Посмотрите на исправленный вариант первой функции и увидите:
    function checkCommision(total) {
        if (total < 1000000) {
            return 0;
        }
        else if ( total < 2000000) {
            return 20000;
        }
        else if ( total < 3000000) {
            return 30000;
        }
        else if ( total < 4000000) {
            return 50000;
        }
        else if ( total < 5000000) {
            return 90000;
        }
        return 10 / 100; // тут очень похоже на ошибку
    }
    Написано
  • Как из строки с путём получить элемент массива?

    Slash, просто уберите предпоследнюю строчку, и всё получится:
    <?php
    $arr = [
    	'k1' => [
    		'k2' => [
    			'k3' => [
    				'k4' => 'v'
    				]
    			]
    		]
    ];
    $string = "k1/k2/k3";
    $keys = explode('/', $string);
    
    $current = &$arr;
    foreach ($keys as $key) {
        $current = &$current[$key];
    }
    
    var_dump($arr);

    Я бы и ссылки убрал, но оно и так и этак работает
    Написано
  • Можно ли добавить условие при регистрации аккаунта на сайте?

    Не просто код-приглашение, а ещё и ссылка на пустой аккаунт, предварительно созданый администратором.

    Имхо, лишняя возня. Если целевой аккаунт пустой (или заполнен шаблонно), то можно создавать его автоматически сразу после того, как кто-то перешёл по ссылке приглашению и код в ссылке был провалидирован.
    Соответственно, если кто-то проигнорировал приглашение, то и мусорного аккаунта в системе не будет.
    Написано
  • Как заставить cron работать внутри docker контейнера?

    gloopsee, по умолчанию образы пишутся так, чтобы контейнер писал логи в STDOUT . Посмотреть эту мешанину можно командой
    docker logs имя_контейнера
    Это я к пишу к тому, что, если "в контейнере ничего не происходит", то можно посмотреть туда.
    Написано
  • Почему я получаю редирект на главную с любой детальной страницы?

    webhero, это при запросе чего-то вроде /ru/types-of-jobs/designer/ , верно? Не главной?
    Если да, то nginx настроен неверно, вот то, о чём я говорил:
    /var/www/gishagi/data/www/gishagi.kz/index.php

    Нужно настроить так, чтобы для не-физических ЧПУ страниц нижняя строчка была
    /var/www/gishagi/data/www/gishagi.kz/bitrix/urlrewrite.php
    Написано
  • Как сделать прилипающую кнопку при клике на чекбокс?

    а почему не так?
    <div class="header"></div>
    <div class="page">
      <div class="checkboxes">
        <input type="checkbox" class="checkbox__input" />
        <input type="checkbox" class="checkbox__input" />
        <input type="checkbox" class="checkbox__input" />
        <input type="checkbox" class="checkbox__input" />
        <input type="checkbox" class="checkbox__input" />
        <input type="checkbox" class="checkbox__input" />
      </div>
      <div class="floating-btn">Показать</div>
    </div>

    .header{
      position:fixed;
      height:50px;
    }
    .page{
      padding: 50px 0 0;
    }
    .checkboxes {
      display:flex;
      flex-direction:column;
      align-items:start;
    }
    .checkbox__input{
      margin: 10px 0;
    }
    .floating-btn {
      position: absolute;
      top:0;
      left: 50px;
      display:none;
      background-color: lightblue;
    }

    const checkboxInput = document.querySelectorAll(".checkbox__input")
    const filterFloatingButton = document.querySelector('.floating-btn');
    checkboxInput.forEach((input) => {
    
      input.addEventListener("change", function () {
        if (input.checked) {
          const top = input.getBoundingClientRect().top
          filterFloatingButton.style.top = top + "px"
          filterFloatingButton.style.display = "block"
        } else {
          filterFloatingButton.style.top = 0
          filterFloatingButton.style.display = "none"
        }
      })
    })
    Написано
  • Как научиться декомпозиции в ООП?

    никак не врубаюсь, зачем так жестко нарезать

    Что значит "жёстко"? Если вместо одного класса вдруг образовался десяток - то в ответах рекомендуют SOLID. Я бы уточнил и поставил акцент на первую букву - Single-responsibility principle. Иногда дробление по этому принципу избыточно - но, думаю, Вам будет проще сначала привыкнуть дробить, а потом уже объединять некоторые кусочки.
    Написано
  • Почему я получаю редирект на главную с любой детальной страницы?

    webhero, если нет ни DOCUMENT_ROOT/local/php_interface/init.php , ни DOCUMENT_ROOT/bitrix/php_interface/init.php, то просто создайте его.
    Да можно даже в dbconn.php запихнуть для разовой отладки. суть в том, что если путь не существует физически, то трасса должна начинаться либо с DOCUMENT_ROOT/bitrix/urlrewrite.php , либо с DOCUMENT_ROOT/bitrix/routing_index.php ( более современный подход ).
    Если это не так - nginx настроен неверно (вероятно, под Wordpress или Laravel )
    Написано
  • Кто может разъяснить магию ssh agent forwarding?

    Mausglov
    @Mausglov Автор вопроса
    Ziptar, Ваш ответ мне кажется не совсем точным, извините. Подсказка от Lynn «Кофеман» мне больше помогла
    Написано
  • Кто может разъяснить магию ssh agent forwarding?

    Mausglov
    @Mausglov Автор вопроса
    Теперь я понял, спасибо!
    Итоговая цепочка, видимо, такая:
    1. промежуточный хост отдаёт отпечаток публичного ключа серверу,
    2. сервер видит, что у него есть ключ с таким отпечатком, шифрует начальную посылку и отдаёт промежуточному хосту,
    3. промежуточный хост пересылает посылку на начальный хост, заодно сообщая, какой публичный ключ задействован,
    4. начальный хост расшифровывает посылку и отдаёт результат промежуточному хосту,
    5. промежуточный хост передаёт результат серверу.

    В итоге все довольны. Единственная угроза: кто-то третий с доступом на промежуточный хост может тоже проэксплуатировать форварднутого агента.
    Написано
  • Кто может разъяснить магию ssh agent forwarding?

    Mausglov
    @Mausglov Автор вопроса
    форвардинг-то работает, Вы не вчитались в вопрос.
    Написано
  • Кто может разъяснить магию ssh agent forwarding?

    Mausglov
    @Mausglov Автор вопроса
    Потому что PublicKeyAuthentication так и работает - вы предлагаете серверу публичный ключ, он же, проверяя соответствующий приватный ключ, допускает вас или не допускает

    Евгений, тут Вы заблуждаетесь. Сервер не может проверять приватный ключ, потому что на сервере приватного ключа нет, только публичный. Наличие приватного ключа где-то ещё - это угроза утечки.
    Работает оно ровно наоборот: клиент предлагает серверу отпечаток публичного ключа. Сервер смотрит, есть ли у него ключ с таким же отпечатком. Если нет - сервер отвергает этот отпечаток и увеличивает счётчик неудачных попыток. Если есть, то сервер шифрует этим публичным ключом начальную посылку и отдаёт клиенту. Клиент расшифровывает полученные данные приватным ключом и предъявляет серверу доказательство. Сервер проверяет доказательство, и если всё ок, соединение устанавливается.
    Написано
  • Почему я получаю редирект на главную с любой детальной страницы?

    webhero, в смысле, там только nginx, апача нет?
    поставьте, пожалуйста, трассировку прямо в php_interface/init.php и покажите тут вывод:
    <?php
    $traceLog = __FILE__.":".__LINE__."\n";
    $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
    foreach ( $trace as $tr ) {
        if( !array_key_exists('file', $tr) ) continue;
        $traceLog .= "{$tr['file']}:{$tr['line']}\n";
    }
    echo nl2br($traceLog);die;
    Написано
  • Какие подводные при хранении токенов в memcached?

    accountnujen, Возможно, Вы путаете переменные окружения и файлы .env . Файлы .env - это один из способов хранить значения переменных окружения перед использованием, но не единственный
    Написано
  • Как реализовать авторизацию на ТВ по 6 значному коду?

    если вы опасаетесь коллизий, то вероятность того, что двум пользователям за время устаревания кода выпадет одно и то же шестизначное число, равна одной миллионной, и это при плохой реализации.
    Плохая реализация:
    1. телевизор генерирует шестизначный пин-код и отправляет его управляющему серверу
    2. что управляющий сервер сделал с запросом телевизора?
    3. телевизор показывает пин-код на экране
    4. как телевизор обеспечивает канал связи с управляющим сервером на время ожидания реакции пользователя?
    5. пользователь вводит пин-код в веб-приложении
    6. приложение отсылает код на управляющий сервер
    7. что управляющий сервер сделал с запросом из приложения?
    8. управляющий сервер сообщает телевизору, что всё окей


    Реализация получше:
    1. телевизор обращается к управляющему серверу с запросом пин-кода
    2. управляющий сервер генерирует пин-код
    3. управляющий сервер проверяет сгенерированный код на коллизию с уже выданными кодами; если нужно -перегенерирует
    4. управляющий сервер отсылает пин-код на телевизор
    5. телевизор показывает пин-код на экране

    ... дальше то же самое
    Написано
  • Как перенести лендинг на WordPress у которого НЕТ базы данных?

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