Задать вопрос
  • Как создать базу данных на Heroku?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Heroku
    Седой и строгий
    Даю совет: Читайте документацию, там всё расписано подробно и элементарно.
    Ответ написан
    5 комментариев
  • Как добавить только не пустые параметры в бд?

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

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

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

    В общем случае нам надо список полей, которые мы можем добавить в БД. Чтобы не колупаться с отдельными переменными. А дальше все просто - цикл, который проверяет на пустоту и формирует сам запрос плюс массив с данными для него.
    $fields = ['phrase','secret','custom1', ...];
    $conditions = [];
    $params = [];
    foreach($fields as $key) {
        if (strlen($val = trim(filter_input(INPUT_POST,$key)))) {
            $conditions[] = "`$key` =?";
            $params[] = $val;
        }
    }
    if ($params) {
        $sql = "INSERT INTO table SET ".implode(",",$conditions);
        $pdo->prepare($sql)->execute($params);
    }
    Ответ написан
    Комментировать
  • X64 и X86 это одно и тоже?

    Sanes
    @Sanes
    x86 это архитектура. x86_64 это 64 бита. Но обычно не заморачиваются, когда обсуждают разные архитектуры.
    32 бита обычно обозначают, как i386, i586 и т.д.
    Ответ написан
    Комментировать
  • Почему Nginx перенаправляет неизвестные субдомены на главный домен?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Заведите серверный блок, который будет обрабатывать всё, для чего не нашлось соответствия в server_name других конфигов.
    Ответ написан
    3 комментария
  • Как сжать видео размером 2,5 ГБ?

    @romancelover
    программист C++ под Linux
    ffmpeg - бесплатно, но работает через командную строку. Есть под Windows и под Linux.
    Пример перекодирования видео из 720 в 480:
    ffmpeg -i input.mp4 -vf scale=720:480 output.mp4
    размер файла уменьшился с 55 Мб до 14 Мб.
    Через параметры командной строки можно задавать что угодно: формат, битрейт, разрешение, можно обрезать по времени и т.п. Примеры командной строки для разных действий можно нагуглить.
    Ответ написан
    Комментировать
  • Как заменить сущности Django на сущности DRF, и имеет ли это смысл?

    tumbler
    @tumbler
    бекенд-разработчик на python
    DRF - он про API, а ваши Django-вьюхи про серверную генерацию и обработку форм. Назначение одно и то же, но реализация существенно различается.
    Ответ написан
    5 комментариев
  • Как вы организуете большое кол-во собеседований?

    glaphire
    @glaphire
    PHP developer
    Искала работу этой осенью)
    Могу сказать что если Вы давно проходили собеседования, то лучше не начинать с компаний, в которые очень хотите попасть, потому что можно быть умным, но поплыть на ряде простых вопросов просто потому, что не освежили память и это собъет хорошее впечатление. Мода на стандартный набор вопросов меняется, то что спрашивали 5 лет назад могут не спросить сейчас, но при этом придумать новые вопросы из стандартного списка. Я была уверена что спросят что-то из серьезных тем, а спрашивали совсем другое и простое, причем нужно было быстро напрячься и вспомнить, чтобы ответить)
    У меня была пара дней, когда были два hr и два технических собеса подряд и это была огромная ошибка - это выматывает очень сильно. Лучше планировать не больше одного тех.собеса в день или делать между ними перерыв минимум 2 часа, а лучше больше.
    На прескрининге/hr собеседовании очень часто говорят - да мы максимум на полчаса созвонимся - не верьте)) Это спокойно растягивается на час и больше, если разговор пошел не по шаблону.
    По итогу могу сказать, что важно помнить о своих жизненных силах и не пытаться с наскоку пройти все собесы, важно оставаться со свежей головой и оставлять время проработать все вопросы, на которых завалились, на некоторые из них может уйти весь вечер)
    Удачи в поисках)
    Upd. Неплохо бы составить список стандартных вопросов, у меня это были:
    1) локация офиса
    2) предоставляет ли компания технику
    3) есть ли овертаймы и оплачиваются ли они, какой темп работы и дедлайны
    4) как оформляется и ведется сотрудничество, когда подписывать контракт
    5) сколько месяцев испыталка
    6) состав команды, кто ею управляет
    7) тематика проекта
    8) технологии, какие из них основные, какие второстепенные
    9) какие средства разработки и коммуникации используются (может вылезти нежданчик с виндой, запретом на лицензионный софт и прочей ерундой)
    10) для чего нужен английский (только технический, только переписка или полноценное общение one-to-one)

    Часть этих вопросов помогла избежать разочарований и зря потраченного времени
    Ответ написан
    Комментировать
  • Где купить маскота PHP?

    Adamos
    @Adamos
    Гугль, "выкройка слоника PHP", полметра синего плюша...
    Ну, или обнаружить по тому же запросу магазин: https://toys-it.ru/product/slon-php
    Ответ написан
    4 комментария
  • Как составить план развития для сильного разработчика?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Если они как бы почти все знают в своем стек, а новый нам не нужен?

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

    Но вообще сеньору для развития нужно просто официально доступное свободное время для написания/изучения чего-то для себя. А что - он сам найдет.
    Ответ написан
    Комментировать
  • Скрытые/переименование модели телефона?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Без root прав можно попытаться распотрошить приложение, и внести в него изменения. Ну если приложение немного сложнее hello world - тогда новичку практически не возможно это сделать.

    А так, нужен только root: - Build Prop Editor

    Добавлю ещё: можно установить Android x86 на hdd, флешку или виртуальную машину и там уже можно менять модель устройства.
    Ответ написан
    Комментировать
  • Есть ли постоянная невидимка даже при отправке сообщений в ВК?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Желательно этот вопрос задать в тех. поддержку самого vk.com, они то больше знают.
    Ответ написан
    Комментировать
  • Есть сейчас смысл ставить Ubuntu для изучения backend (PHP,Python,Postgre и т.д)?

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

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Мне очень интересно в каких направлениях копать, чтобы понять как оно все утроено, работает и что мне читать и изучать, чтобы разобраться и написать свой "фреймворк".

    ну и для начала подскажите с чего начать.

    Взять код того же Django - он вполне себе лежит в открытом виде.
    Разобраться как там все сделано - и написать свой с блекджеком и женщинами легкого поведения.
    Ответ написан
    Комментировать
  • Скорость по Wi-fi непонятно как работает?

    @Hanneman
    В чем суть вопроса? Почему на каком-то левом, напичканном рекламой, сайте, вам пишет то одно, то другое? Такой 'сайт' за 10 минут можно создать, который разные значения будет вам показывать.Зайдите на speedtest.net, который точно работает.
    Ответ написан
    4 комментария
  • Как безопасно отправлять пользовательский текст в базу POST запросом?

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

    В-первых, POST запросом ничего добавить в базу нельзя.
    База вообще ничего не знает про пост запросы. POST запросом можно отправить текст только в РНР.
    А РНР уже будет добавлять в БД.

    Про HTML база данных тоже ничего не знает. Поэтому "htmlspecialchars" к базе данных не имеет никакого отношения. И делать это для добавления в БД не нужно. Это функцию надо применять при выводе данных в браузер, а не при сохранении в базу данных.

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

    Для безопасного добавления данных в БД из РНР, надо отправлять их отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    И не важно - пользовательский у тебя текст, или какой-то другой, POST у тебя запрос, или вообще никакого запроса не было - все эти вещи к работе с БД из РНР не имеют никакого отношения. Важно только то, что данные всегда отправляются в БД отдельно от запроса.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $name, $text, $message, $date);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$name, $text, $message, $date]);

    А дураков, которые сами не знают, как текст в базу сохранить, слушать не надо.
    Ответ написан
    Комментировать
  • Как скачать видео с ютуба в максимальном качестве? Проверял с помощью программ, онлайн сервисов, у всех максимум это 720p Как решить эту проблему?

    @Aelliari
    Старый добрый консольный youtube-dl, ключ -F позволит увидеть список всех возможных вариаций по качеству видео/аудио. А ключ -f позволит скачать выбранное качество, хоть 8k качай. Стоит учитывать, видео и аудио у наиболее качественных вариантов идут отдельно друг от друга, при наличии в системе ffmpeg youtube-dl можно заставить так же автоматически их собирать в 1 файл
    Ответ написан
    2 комментария
  • Стоит ли регистрировать домен за границей?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Скорее да, чем нет.
    С зарубежными доменами вероятность какого-то инцидента пониже, чем с .RU, даже у отечественных регистраторов, но думаю, что с иностранным регистратором будет спокойнее.

    Неплохие (и бюджетные) сейчас это NameSilo, Porkbun, и NameCheap. Последний с натяжкой - похоже, началась тенденция к тому, чтобы испортиться.
    Ответ написан
    2 комментария
  • Как в Django для одного поля сделать несколько значений?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Комментировать
  • Как открыть старый редактор статей на хабре?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    5fd62d1aabf42220051432.png
    Ответ написан
    Комментировать