Задать вопрос
  • Как во vue вывести значение условия со строкой?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Разберитесь с приоритетом операторов.

    Давайте-ка скобок добавлю, чтобы яснее стало, что в каком порядке выполняется:

    ('ic' + true) ? 'on' : ('off' + '.svg')

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

    computed: {
      className() {
        return условие ? 'icon.svg' : 'icoff.svg';
      },
      ...

    <p :class="className">
    Ответ написан
    1 комментарий
  • По DHCP раздается не та подсеть. Как решить проблему?

    semenenko88
    @semenenko88
    Системный администратор
    Да, если кто-то воткнул в вашу сеть свой dhcp, то так и будет.

    Клиент при включении отправляет широковещательный запрос, кто здесь dhcp сервер. Вот чей сервер первей ответит, тот и раздаст этому клиенту адреса.
    Ответ написан
    Комментировать
  • Не понимаю, что происходит внутри регистра после DIV. "Регистры ломаются"?

    @galaxy
    Числа из read() приходит в виде строк - последовательности ASCII кодов. Для 2 и 3 это будет 0x32 и 0x33 соответственно (я уже забыл, честно говоря, придут ли они вместе с "\n" или нет).
    Короче, вы делите ASCII-коды.
    Ответ написан
    Комментировать
  • Как правильно использовать mysqli_num_rows()?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это очень хороший вопрос.
    Ответ на него - никак не использовать.

    Да, в mysqli действительно есть специальная функция, которая может сказать, какое количество строк вернул запрос SELECT.
    Традиционно употребляется в двух случаях:

    а) когда это не нужно
    б) когда приводит к катастрофическим последствиям

    Первый вариант - это когда мы хотим узнать, вернул ли запрос хоть какие-то данные, или нет. Но на этот случай у нас есть сами данные. Зачем отдельно запрашивать их количество, если мы все равно будем эти данные получать в переменную, которую потом и можно будет использовать чтобы узнать, вернул ли запрос что-нибудь или нет.

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

    Правильным решением этой задачи будет сделать запрос вида SELECT COUNT(*) FROM .... В этом случае БД сама внутри себя посчитает количество строк (очень быстро) и вернёт только одно число, которое не занимает оперативную память вообще.

    Вот и получается, что функция mysqli_num_rows() является либо вредной, либо бесполезной

    В данном случае надо сначала получить записи из БД
    // БЕЗОПАСНО выполняем запрос
    $stmt = $link->prepare("SELECT * FROM comments WHERE art_id = ?");
    $stmt->bind_param("s", $note_id);
    $stmt->execute();
    // получаем данные
    $result = $stmt->get_result();
    $comments = $result->fetch_all(MYSQLI_ASSOC);
    ?>

    А после этого уже их выводить
    <?php if ($comments): ?>
        <?php foreach ($comments as $row): ?>
             <?=$row['comment']?><br>
        <?php endforeach ?>
    <?php else: ?>
        Эту запись еще никто не комментировал
    <?php endif ?>


    Как видно, никакой mysqli_num_rows нам не понадобилось
    Ответ написан
    9 комментариев
  • Как лучше сделать авторизацию пользователей через JWT?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы путаете JWT и сессии. Вся суть JWT в том, что в БД ничего писать не надо. Если вам нужно трекать пользовательские сессии и скидывать их, то JWT вам не подходит.
    Ответ написан
    Комментировать
  • Как выбрать тему для статьи на Хабр, которую будут читать?

    pragmatik
    @pragmatik Куратор тега Хабр
    Неправильно ты, Дядя Фёдор, бутерброд ешь...
    Нужно писать про то в чем хорошо разбираешься. Потому что, если ты будешь писать про то, в чем ты не разбираешься, на сайтах вроде Хабра, где есть система дизлайков, то ничего хорошего тебе это не принесет.
    Ответ написан
    2 комментария
  • Почему PHP не принимает символы / ' ` и смайлики в строке input и textarea для записи в БД MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чтобы смайлы не вызывали ошибку надо выставить правильную кодировку
    чтобы никакие символы не мешали запросу, все переменные надо передавать в БД отдельно от запроса

    // правильно соединяемся
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli($host, $user, $pass, $db, $port);
    $mysqli->set_charset("utf8mb4");
    // правильно вставляем
    $sql = "INSERT INTO users (name, email, password) VALUES (?,?,?)";
    $stmt= $conn->prepare($sql);
    $stmt->bind_param("sss", $name, $email, $password);
    $stmt->execute();
    Ответ написан
    Комментировать
  • Практичное ядро сети будущего офиса на 200человек, какой опыт посоветуете из современных решений?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    Дома с переломом ноги
    Хотите проблем - ну делайте "модно-стильно-молодежно". Не хотите проблем - делайте кабелем. wifi был придуман для носимых устройств и оправдан там, где прокладка сети уже невозможна - в старых офисах, на арендуемых площадях, в исторических зданиях.
    При проектировании сети всегда стоит закладывать на каждое место на одну розетку больше, чем было посчитано :) Узловые свитчи вязать оптикой. Серверную располагать так, чтобы "чужие здесь не ходят".
    Ответ написан
    7 комментариев
  • Можно ли считать JavaScript полноценным языком программирования?

    Adamos
    @Adamos
    Когда-то Голубицкий в Компьютерре прекрасно ответил на весь класс подобных вопросов.
    Там был срач о профессиональной фототехнике и профессионалах-фотографах.
    Так вот, он указал на мужика с обезьянкой на сочинском пляже и тот очевидный факт, что он именно фотографией профессионально зарабатывает, и люди ему за нее платят. Хотя дело тут не в профессиональных навыках мужика и уж тем более не в профессиональности его фототехники. А в обезьянке.
    На JS пишут тонны кода. Будете вы лепить на него свой ярлычок со словом "полноценный" или нет - это исключительно ваши половые трудности. А караван идет.
    Ответ написан
    7 комментариев
  • Каков шанс попадания в группу 2 из 10 человек?

    @TheCalligrapher
    Если идти "длинным" комбинаторным путем, то можно вычислить количество "благоприятных" размещений 10 человек по 10 позициям и разделить их на полное количество размещений (то есть на 10!).

    "Благоприятными" будут размещения

    (1, 2) (...) (...) (...) (...)
    (2, 1) (...) (...) (...) (...)
    (...) (1, 2) (...) (...) (...)
    (...) (2, 1) (...) (...) (...)

    и т.д, всего 10 вариантов. Количество размещений в каждом варианте очевидно равно 8!

    Итого, вероятность равна (10 * 8!) / 10! = 1/9

    Хотя на самом деле ответ 1/9 очевиден. Без потери общности можно считать, что сначала мы помещаем куда-то человека №1, а затем в одно из свободных мест человека №2. Вероятность, что человек №2 окажется в одной группе с человеком №1 очевидно равна 1/9. Другое дело, что следует показать, что в таких "очевидных" рассуждениях мы не теряем общности, т.е. показать, что не нужно еще отдельно рассматривать варианты, когда первым мы размещаем человека №3, вторым - человека №5 и только затем человека №1 и т.д.
    Ответ написан
    9 комментариев
  • Реализация игры "Морской бой" на серверной части?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    I’d
    Row
    Column
    UserId
    State
    Gameid
    И никакого джисона
    Ответ написан
  • Почему PDO выдаёт фатальную ошибку?

    @MaLuTkA_UA
    С помощью подготовленных запросов нельзя вставлять колонки. Прочтите документацию как использовать PDO
    Ответ написан
    Комментировать
  • Почему не правильно закрывается тег в xml?

    scottparker
    @scottparker
    $t1 = $t1->addChild ( 'Товар' );
    вот в этом (этих) переприсваиваниях переменной t1
    Ответ написан
    2 комментария
  • Как на javascript замерить время выполнения функции (в наносекундах)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    точное время выполнения одного вызова функции получить довольно сложно.

    во первых - performance.now возвращает дробное число, поэтому там в принципе может быть наносекундная точность. однако стандарт определяет что точность должна быть 5 микросекунд. Плюс браузеры могут специально занижать точность чтобы бороться с некоторыми атаками.

    поэтому правильно вызывать функцию много раз и считать среднее.
    так же в ноде есть process.hrtime которая дает наносекунды.

    оба этих метода "в лоб" не дадут нормального результата. Почему? потому что в реальности происходит много всего интересного при выполнении кода.

    в движке есть неимоверное количество оптимизаций, и функция вызванная 10 раз будет иметь совершенно другой код чем функция вызванная 100 раз. То же касается и типов параметров - например вы можете передавать целые или дробные числа.
    На одну вашу написанную js-функцию движок сгенерирует несколько функций которые это реализуют. У этих функций может быть совершенно разный код с разной произодительностью.

    Переключение происходит на лету и в общем виде вы не знаете когда это происходит.

    поэтому само по себе замерение скорости "функции" имеет мало смысла, так как там их несколько внутри. Если интересны детали - погуглите JIT, AOT и v8 optimizations.
    Сейчас важно то что есть "холодные" функции которые работают медленее но надеждее и как правило используются сразу и есть "горячие" варианты, которые компилятор начинает использовать когда видит что код вызван много раз, и условия не меняются. "Горячие" работают быстрее.

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

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

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

    И тут самый главный момент - даже если вы замерите эту скорость, что вы будете делать с этим знанием? В реальной программе при выполнении этого кода скорость может быть совсем не такая как вы намеряли. Эти тесты годятся только для своего общего развития

    На практике имеет смысл измерять скорость у функций которые выполняются намного дольше И там где это создает проблемы. погуглите термин "преждевременная оптимизация".
    В этом случае обычно понятно что создает задержки и измерить время работы одного вызова не составляет труда.
    Если же функция работат так быстро что вы не можете понять насколько именно, то вряд ли вам потребуется это выяснять.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это частая ошибка новичков, которые путают транзакции с блокировками.
    Тебе нужно последнее

    вот так и формулируй - как заблокировать таблицу на чтение
    а не какой-то абстрактный "участок кода"
    Ответ написан
    4 комментария
  • Как правильно зарегистровать/лицензировать код?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все уже сделано. При создании интеллектуальной собственности вы автоматически становитесь единоличным обладателем всех авторских и смежных прав. Никто без вашего письменного разрешения не имеет права ваше произведение даже использовать, не то что распространять

    Главное - иметь возможность доказать авторство. Можете CD с исходниками положить в банковскую ячейку, засвидетельствовав этот факт нотариально.

    Приложите к вашей программе текст лицензионного соглашения (тут может потребоваться консультация юриста)
    Ответ написан
    6 комментариев
  • Как запретить пользователю доступ к php,json файлам через .htaccess, чтобы работали ajax запросы?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    На самом деле никак. Пользователь это браузер, браузер должен через Ajax обращаться к скрипту. Ajax это по сути и есть прямой запрос. Можно поиграться с CORS, но результата будет ноль ибо он не спасет от такого.

    Стоит подумать какую проблему вы пытаетесь решить этим. Что это за скрипт и почему надо его ограничить?
    Ответ написан
    4 комментария
  • Как записать несколько значений в одном поле MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тебе надо освоить базовые принципы реляционных баз данных
    и освоить такие понятия как "отношение один ко многим" и join

    Поскольку ответ на вопрос "Как записать несколько значений в одном поле MySQL?" звучит так:

    завести ещё одну таблицу, в которую писать нужные значения на разных строках, вместе с id строки из основной таблицы


    после этого делаешь запрос к этой таблице, передавая ид пользователя, и получаешь все его курсы

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. на РНР - точно нельзя.
    2. Если страница открыта, то это совсем не значит, что пользователь её читает. Он может быть в другой программе или вообще на кухне
    3. Идея заведомо дурацкая и не стоит ни одной минуты времени, затраченной на неё.
    Ответ написан
    Комментировать