Задать вопрос
  • Почему при попытке вывести суммы выдаёт не то что нужно?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Кода недостаточно, но думаю, что ты не инициализируешь summ нулями
    Ответ написан
    4 комментария
  • Изоляция трафика между VLAN Mikrotik. Правила фильтрации не срабатывают. Возможно есть какой-то другой способ?

    Keffer
    @Keffer
    ICANN
    Но ведь так сейчас многие статьи рекомендуют разводить на виланы, а вот как изолировать между собой ни в одной статье не говорится...


    Забудьте об этом раз и на всегда. И используйте старый добрый способ навешивания виланов на порт, без бриджа. Проверено и гарантия на 146% полноценной работы. Тот кто придумал развешивать на бридже виланы - идиот клинический.
    Ответ написан
    Комментировать
  • Как сделать, чтобы учитывались неполные номера в черном списке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT COUNT(*) FROM blacklist WHERE ${CALLERID(num)} LIKE CONCAT(callerid, '%') AND blockenabled = 1

    И проверять, что вернулось количество больше нуля.
    Ответ написан
  • Как решить проблему с вводом двумерного массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    //переопределяю массив новыми размерами
    a[row][col];
    С чего вы сделали такой вывод? Это просто получение значения из массива a по индексам row и col.
    Соответственно, массив у вас остаётся размером 1x1 и при записи в несуществующие адреса повреждается стек.
    Как решить проблему?
    Изучить, как создавать массив динамически.
    Ответ написан
    Комментировать
  • Как решить проблему с вводом двумерного массива?

    a[row][col]; Это не переопределение массива, а доступ к элементу с индексами row и col.
    Для создания динамичесго массива используйте указатели или std::vector.
    Ответ написан
    Комментировать
  • Как создать платную смс подписку?

    @podde
    самый младший сисадмин
    Вы слишком хорошо думаете об операторах.
    Это всё делается через них. Они берут себе конский процент с прибыли за все эти подписки (по-моему, 60 или 70 процентов, не помню точно). Для организации подписки надо иметь ИП или ООО.
    Зачем вам это? Облапошивать народ? Не надо в погоне за деньгами становится плохим человеком.
    Ответ написан
    3 комментария
  • Как использовать PDO в других классах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос хороший и правильный. Всё остальное - не очень.
    К сожалению, то что у тебя сейчас - это тоже говнокод и неправильно.

    Тут надо понимать одну очень простую, но очень неприятную вещь: ООП, в отличие от ПХП - это сложная тема. Явочным порядком, там подглядев, тут скопипастив - ООП изучить нельзя.
    Максимум что у тебя получится - это та же процедурщина, вид сбоку. Неподдерживаемый говнокод, просто по-обезьяньи обернутый в классы.

    Но учиться все равно надо.
    Главное что надо понимать про ООП - оно не про сами классы, а про их взаимодействие.
    именно поэтому то самое жлобал и является говнокодом. Потому что никакого взаимодействия нет ,и класса тоже нет - есть функция, которую если вынуть из класса, то НИЧЕГО не изменится.

    Но и то что у тебя сейчас - это не ООП.
    Каждый раз создавать новое подключение можно и без всякого ООП. Вот только оно убьёт тебе сервер БД.
    Чтобы было ООП, надо передать уже созданный инстанс класса для работы с БД как параметр конструктора.

    Кроме того, класс qpdo - это какой-то анекдот, бессмыслица. Обезьяна увидела как человек носит очки, напялила на нос ложку и ходит с гордым видом. Внешне вроде то же самое, но смысла никакого.
    Ты можешь объяснить, ЗАЧЕМ тебе класс qpdo? Чтобы настройки прописать? А ты подумал что настройки бывают РАЗНЫЕ? Что дома у тебя логин рут и пароль пустота, а на хостинге это не прокатит. И что - будешь код переписывать, каждый раз заливая из дома на сервер? Серьёзно?
    Настройки должны всегда лежать отдельно. А больше ни для чего твой класс не нужен.

    Поэтому,

    1. qpdo выкинуть на помойку, по крайней мере до тех пор, пока не поймешь, для чего тебе свой класс, и как с ним обращаться.
    2. Создать один раз инстанс класса для работы с БД (в простейшем случае - PDO) и передавать в другие классы через констркутор
    3. в конструкторе присваивать его переменной класса, которую использовать для доступа к БД.

    В итоге возвращаемся к исходному вопросу, как передать соединение в другой класс:
    class somethingClass {
      function __construct($db) {
        $this->db = $db;
      }
    
      function somethingFunction(string $key) {
        $query = $this->db->prepare("SELECT `key` FROM `table` WHERE `key` = :key");
        $query->execute(array(':key' => $key));
        return $query->fetchColumn();
      }
    }


    Бонус
    echo 'Ошибка подключения к БД MySQL: ' . $error->getMessage() . ''; die;
    - это ад и говнокод.
    Да, в прошлом веке так писали. С тех про прошло уже 20 чертовых лет. 20, Карл! Тебя небось еще в проекте не было.
    Сайт, который вываливает вот это всё на всеобщее обозрение - это позор.
    Все ошибки сайт должен всегда держать при себе. И никому не показывать. И поэтому никогда не надо лезть руками в ту ошибку, которую выбрасывает РНР. Надо дать ей спокойно пойти туда, куда идут все остальные ошибки.
    Ответ написан
    Комментировать
  • Почему bash не добаляет значение к массиву внутри цикла?

    @voleg4u
    http://www.voleg.info/
    В баше while совершенно не встроенная функция. Она вызывает fork, и поэтому все остальное выполняется в sub-shell. Заставить вразумительно работать while нереально.
    Ответ написан
    2 комментария
  • Почему значения меняются?

    @res2001
    Developer, ex-admin
    Потому что массив так нельзя вернуть из функции. Сейчас вы просто возвращаете указатель. Пока указатель находится в функции getMas он действительно указывает на массив. Как-только вы вышли из getMas стек схлопнулся (ваш массив находится на стеке) и память, где раньше лежал массив стала не действительной.
    После вызова первого printf, та же память на стеке, которую когда-то занимал ваш массив выделилась под нужды printf, и printf заполнила эту память чем-то своим, поэтому в третьем printf у вас фигня.
    Программа у вас не вываливается с ошибкой, потому что в стеке память всегда выделена. "Схлопывание стека" - это просто уменьшение/увеличение регистра указателя на стек.

    У вас есть 2 вариант.
    1. Простой - выделить массив в main, передать его в getMas. Из getMas уже можете ничего не возвращать, только заполняете там массив.
    2. Выделяете динамический массив в getMas с помощью malloc. В main не забудьте освободить память, выделенную для массива. Это плохой вариант, т.к. память выделяется на одном уровне программы, а освобождается на другом. Но в вашей простой задаче можно пока на это не обращать внимания.
    Ответ написан
    Комментировать
  • Зачем требуются различные СУБД, если можно использовать структуры данных языка, например словари и списки в питоне?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если на структурах языка реализовать весь набор функций, предоставляемых СУБД, то получится новая СУБД. Зачем тратить время и силы на написание СУБД, если есть уже готовые?
    Ответ написан
    Комментировать
  • Как парсить сайты защищенные CloudFront?

    @alpeg
    Обход кеша целиком и полностью зависит от настроек сайта, тут без экспериментов не разобраться.
    Пробуйте перебирать заголовки, GET-параметры, Сookie.
    Рекомендую почитать документацию самого CloudFront, особенно разделы про Query String Parameters, Cookies и Request Headers.
    Ответ написан
    Комментировать
  • Нужно рассчитать IP адрес для следующей сети. Всё верно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    10101100.00010010.10111100.0010|0000 (Network ID)
    +
    00000000.00000000.00000000.0001|0000
    =
    172.18.188.48 (next IP address)

    Всё ли верно я сделала???

    Да.
    Ответ написан
    1 комментарий
  • Не работает рестарт nginx?

    @Samuel_Leonardo
    из лога видно что ругается на вызов kill, скорее всего проблема в параметрах,
    но сама ошибка у вас не влезла в вывод

    посмотрите полный лог, например, через
    #journalctl -xe

    ну и проверьте файл конфигурации сервиса, там поидее должно быть
    ExecReload=/bin/kill -s HUP $MAINPID
    Ответ написан
    Комментировать
  • Как сделать, чтоб при вставки команды в терминал, она не запускалась автоматически сразу сама?

    Zoominger
    @Zoominger
    System Integrator
    Копируйте так, чтобы не зацепить следующую строку, потому что при этом копируется невидимый символ перевода а-ля "\n".
    Ответ написан
    Комментировать
  • Как установить идентичное время на сервере и клиенте?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Включить и настроить NTP на единый источник времени.
    Если ОС клиента вам не подконтрольна - то вы не можете рассчитывать на то, что часы на клиенте и сервере совпадают и должны придумывать как с этим жить вашему приложению.
    Ответ написан
  • Как убрать лишнее из вывода команды?

    @dodo512
    grep -oP '^[a-z]+(-[a-z]+)*'

    grep -oP '^.+?(?=-\d|$)'

    sed 's/-[0-9].*//'
    Ответ написан
    2 комментария
  • Запрет одному из сайтов полностью грузить сервер, как?

    Sanes
    @Sanes
    Что именно грузит? Cgroups может помочь. Можно некоторые ограничения для MySQL пользователя сделать.
    Если нагрузка легальная, то ограничения вам не помогут. Ищите источник.
    Ответ написан
    3 комментария
  • Как установить PostgreSQL 11.5 на Ubuntu Server?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Вам не нужна именно 11.5. Ставьте актуальный minor - 11.8 или в четверг это уже будет 11.9.

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

    Minor релизы postgresql содержат только исправления ошибок и безопасности. Искать давно исправленные ошибки не самое полезное что можно придумать.
    Ответ написан
    3 комментария
  • Как запретить А запись в DNS сервере windows?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Выключить регистрацию в DNS в свойствах сетевого адаптера и создать руками нужные статические записи.
    Ответ написан
    6 комментариев
  • Как правильно экранировать символы $ и ' при передаче их в ansible shell?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почитать документацию шелла по кавычкам.

    Вкратце:
    1. Внутри одинарных кавычек ВСЕ символы теряют свое специальное значение. Включая backslash, поэтому
    'STRING1\'STRING2'
    - это не экранированная одинарная кавычка в кавычках, а строка STRING1\ в одинарных кавычках потом STRING2 без кавычек, а потом еще одна открывающая одинарная кавычка, которая незакрыта.
    Можно делать так:
    'STRING1'\''STRING2'

    2. Внутри двойных кавычек, все символы теряют свое специальное значение кроме $, backslash и обратных одинарных кавычек. Примеры:
    "${VARIABLE} \${VARIABLE} $(hostname) `hostname`"
    значение VARIABLE, строка ${VARIABLE} которая раскроется позже, дважды результат команды hostname вызванный разными способами
    Ответ написан
    Комментировать