• Как реализовать такую сетку с помощью flex?

    origami1024
    @origami1024
    went out for a night walk


    1. item4 задается высота 200%
    2. item5 margin справа ~33%
    Ответ написан
    2 комментария
  • Как не проводить деньги через счет своей организации?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Каждый партнер регистрирует на себя платежную систему.
    В зависимости от партнера подставляете разные id/secretы/логины при оплате/генерации подписей и т.п.
    Колбеки-вебхуки от платежной системы приходят на условно уникальные url где мы тоже уже понимаем что платеж к какому-то конкретному партнеру поступил.

    Технически никаких проблем в этом нет в общем. Из ограничений только ваша фантазия.

    Только никто не захочет ничего не себя регистрировать и/или давать вам доступы, но это уже другая история xD
    Ответ написан
    3 комментария
  • Можно ли сделать такую выборку?

    Gomonov
    @Gomonov
    Select * from table where count > 0 and date >= (Select date from table where count = 0 order by date desc limit 1)
    Ответ написан
    Комментировать
  • Можно ли сделать такую выборку?

    @Bonce
    Да, можем.
    Для этого необходимо найти самый поздний нуль и выбрать все единицы позднее нуля.
    Т.е.
    SELECT * FROM table_name
    WHERE date_column > (SELECT MAX(date_column) FROM table_name WHERE counter = 0)
    Ответ написан
    3 комментария
  • Как правильно запустить Selenium на VPS?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Selenium запущен без монитора - браузер не может запуститься и получается вот такая ошибка.

    Чтобы запускать полноценные браузеры на VPS можно использовать xvfb-run. Как пример запуска:

    DISPLAY=:99 xvfb-run -a -n 1 -l -s "-screen 0, 1024x768x8" java -jar /usr/local/bin/selenium-server


    Подробнее расказывать вот эта статья:

    ermin.ru/post/19
    Ответ написан
    6 комментариев
  • Как получить значение у только видимых полей?

    @Narts
    Если у поля нету атрибута name, то он не попадает в serialize()
    Можно этим воспользоваться

    Или же
    var data  = $('#form :input:not(:hidden)').serialize();
    Ответ написан
    Комментировать
  • Прилетает post запрос, как прочитать тело?

    New_Horizons
    @New_Horizons
    Бред:
    var_dump(php://input);

    А лучше ещё и $_POST тоже проверять, т.к.:

    php://input недоступен с типом содержимого enctype="multipart/form-data".
    Ответ написан
    5 комментариев
  • Как правильно составить условие для rewritecond?

    shambler81
    @shambler81 Куратор тега htaccess
    Вообще правильно наоборот добавлять слеш, однако надо не забывать что есть места исключения когда его нужно убирать.
    В общем кидаю тебе правило уже расписаное
    ! - отрицание остальное там прокоментированно.
    Уж из этого сможешь переработать под себя
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule .* /$0 [R=301,L]
       # Исключаем все лишние слеши.
    
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    Ответ написан
    7 комментариев
  • Как с помощью класса для PDO получить результат update?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Хороший вопрос.
    И класс в целом очень неплох, сильно лучше тех, что обычно пишут "когда учатся".

    А ответ на вопрос простой но неожиданный - никак.
    Результат запроса update тебе не нужен.

    Тут надо понять, как работают исключения.
    Это немного отличается от последовательного выполнения кода, к которомы поначалу привакаешь, когда учишь пхп: выполнил опрацию - првоерил результат, выполнил следующую - проверил результат. С исключениями это не так. Ты просто выполняешь операции и ничего не проверяешь.
    Если же возникнет ошибка - то есть, результат будет отричательный - будет выброшено исключение. Которое будет обработкно где-то еще, если у тебя нет конкретного сценария для этой ошибки, или поймано на месте - если есть.

    Если же говорить о количестве строк, которые затронул запрос, то, поскольку у тебя абстракция не течет, то вместо метода sql(), который тупо дублирует run(), я бы сдела метод dml()

    public static function dml($query, $args = []) {
        $stmt = self::run($query, $args);
        return $stmt->rowCount();
      }

    и применял ее только для запросов, модифицирующих данные (DML).
    Ответ написан
    1 комментарий
  • Как реализовать подгрузку новых данных из БД с помощью Ajax?

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

    если речь о офсете/ленивой загрузке, то принцип такой же: сохраняем текущий офсет -> при следующем вызове достаем его, увеличиваем на нужное значение, отдаем данные с нужным офсетом, пересохраняем текущий офсет.
    Ответ написан
  • Как работает return true в данном примере?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    почему нельзя использовать конструкцию else?

    потому что цикл прервётся на первой же итерации. Любое из условий приведёт к выполнению return
    Ответ написан
    Комментировать
  • ООП, когда отрабатывают методы класса?

    DevMan
    @DevMan
    конструктор выполняется при создании объекта, остальные методы выполняются при их вызове.
    Ответ написан
    1 комментарий
  • Как изменить содержимое одного столбца для всех строк в одной таблице MySQL?

    coderisimo
    @coderisimo
    вот так всех юзеров можно разом отправить в Урюпинск ))

    UPDATE user u SET u.address = 'Urupinsk'
    Ответ написан
    4 комментария
  • Неужели порог вхождения в андроид разработку настолько высокий?

    Программирую на всяком-разном 30 с лишним лет, пишу под Андроид с самого его начала - начал незадолго до того, как приобрёл HTC A3288 Tattoo, почти 10 лет уже как.

    Не имею опыта работы, но понимаю как работает: Dagger, RxJava2, Moxy, разнообразное юнит-тестирование и всякие либы поменьше. Ничего не помню наизусть, даже методы класса Object. Имею смутное представление о том, как работает многопоточность, какие там есть виды списков и в душе не понимаю, как устроено хэширование объектов. Без IDE с подсказками и онлайновой помощи глух и слеп как котёнок.

    Без работы не сижу. Считаю себя успешным.

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

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

    * Поскольку библиотек с дублирующейся направленностью пруд пруди, важнее знать принцип работы, а не какую-то конкретную библиотеку.

    * Вы должны понимать, что все эти Dagger, RxJava и прочие Moxy - тупо библиотеки тупо пацанов, которые сидят в трусах перед компами и всё такое. То есть, изначально это всё - нонконформистская прогрессивная адова самописуха с присущими ей концептуальными и арфогрофичесскими ошибками, которая в нечастых случаях превращается в продукт примерно корпоративного масштаба. Потому, надо стараться не переоценивать их значимость на вегетативном уровне.

    * Держитесь корней. То есть, за корни. Ну, в общем, за JetPack, AndroidX и всё, что выдумал Google. Это основное и самое важное.

    * Старайтесь обходиться минимумом зависимостей.

    * Кроссплатформа - это совсем другая индустрия. Надо определиться, нативщик вы или кроссплатформа.

    * Обычное трудоустройство напоминает обучение вождению в автошколе: вы учите кучу всего, что требуется, потом сдаёте экзамен, получаете водительское удостоверение и через год помните только правило правой руки и полдюжины дорожных знаков. Ездите по городу по привычке, страдаете от того, что где-то повесили новый или убрали старый знак.

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

    * Иногда важнее знать русский язык, нежели Java или Kotlin. Впрочем, иногда технический английский ещё важнее.

    * Даже если днище, безнадёга и фриланс, надо понимать, что есть два типа клиентов: те, которым надо красивый код в стартап и те, которым код не надо.
    Ответ написан
    2 комментария
  • Где взять актуальную базу России регионов->городов->улиц в формате sql?

    denis_bardak
    @denis_bardak Автор вопроса
    Web Developer
    нашел еще вариант, уже веселее https://kladr-api.ru/
    В итоге хватило api dadata https://dadata.ru/api/suggest/
    Ответ написан
    Комментировать
  • Как поступить с неприятным заказчиком?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Скупой платит дважды.
    Дурак платит трижды.
    Лох платит всегда :)

    Клиент Ваш как минимум первый и второй одновременно :) Вы еще терпели его два года :) Вот теперь пусть платит :)
    Ответ написан
    Комментировать
  • Как поступить с неприятным заказчиком?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Любая работа должна быть оплачена. За исключением исправления своих ошибок. Тут Ваших ошибок нет, на мой взгляд. Так что смело ставьте ценник за восстановление. Но учтите, что надо заранее оговорить, что это не финальная версия. Он же мог там много что менять. Что бы потом Вы не оказались виновным в откате к первой версии сайта.
    Ответ написан
    9 комментариев
  • Как поступить с неприятным заказчиком?

    Stalker_RED
    @Stalker_RED
    Потратьте 20 минут, напишите вежливое письмо типа "уважаемый ФИО, т.к. вы два года не оплачивали хостинг, сайт был отключен и удален хостером. Работы по его восстановлению будут стоить столько-то. А услуги по доработке будут оплачиваться отдельно, в зависимости от объема работ".

    И цену поставьте такую, которая сможет компенсировать ваши душевные страдания:)
    Ответ написан
    Комментировать
  • Правильно ли я перебрал массив для записи в mysql?

    Minifets
    @Minifets
    Hello world!!!
    Технически скрипт будет работать, но к нему есть много вопросов. :)

    1) foreach ($POST as $key => $value):
    Зачем перебирать весь POST, когда вы работаете с формой, которая записывает данные в таблицу БД. В таблице все поля жестко заданы и известны заранее, поэтому лучше перебирать не весь POST, а заранее подготовленный объект/массив только с теми ключами, которые должны быть в вашей форме.

    2) Отсутствует валидация.
    Помимо фильтрации пустых значений, было бы хорошо, если каждое поле проходило бы еще и валидацию данных. Т.к. мы работаем с заранее известной формой, то и можем предположить, какие данные должны быть в ней.

    2.1) Добавить к валидации еще и csrf защиту.

    3)
    $sql = "INSERT INTO `table` ($keys) VALUES ($vals)";

    Тут у вас аж 2 SQL инъекции. Первая в $keys - т.к. в post запросе можно будет добавить кастомных полей с произвольным кодом в ключах. К слову, почему нужно готовить для foreach свою форму.
    Вторая в $vals. Тут нужно использовать подготавливаемые SQL запросы и в VALUES передавать ? , а не данные. А сами данные уже подставлять при извлечении подготовленного запроса.
    Ответ написан
    1 комментарий