• Как обезопасить сайт от комментария пользователя с XSS, но при этом сохранить нужные теги (htmlspecialchars делает теги обычным текстом)?

    @hell
    Вообще говоря, strip_tags позволяет оставить некоторые теги. Собственно оставляем набор типа "p", "a", "strong", "em", "br", а для пущей чистоты грузим сухой остаток как DOMDocument, пробегаемся по нодам и чистим атрибуты.
    Ну или просто пробегаемся грузим как DOMDocument, пробегаемся по нодам и чистим лишние атрибуты, а лишние ноды удаляем. Работать должно побыстрее preg-replace.
    Ответ написан
    Комментировать
  • Как реализовать отображение всех адресов на карте подобно ресурсу airbnb?

    @sidni
    Php Developer
    В документации много примеров работы с картой на JS, ну и после прочтения можно уже иметь представление о том как подобное реализовать
    https://developers.google.com/maps/documentation/j...
    Ответ написан
    2 комментария
  • Как решить такую задачку?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Вам очевидно нужно понимать, как высчитываются проценты. Если вам нужно посчитать процент $win[1] от $win[2], то нужно писать
    $percent = $win[1] / ($win[2] / 100)
    Ответ написан
    7 комментариев
  • Многопоточность и MySQL?

    @Joysi75
    А в чем проблема?
    Базу данных проблемы использующих ее приложений не волнуют. Она в порядке очереди будет обрабатывать поступающие запросы и выполнять их. При выполнении операций модификаций будет блокировать таблицу на изменение. Если будут параллельные запросы к данному ресурсу - положит их в очередь до завершение блокирующих операций, если параллельный запрос к незаблокированному ресурсу - запустит его выполнение не дожидаясь результатов предыдущих.

    У вас таблица с identity. И одновременно поступило пятьсот insert-ов. Все они встанут в очередь. И будут отработаны (будут выполнены или нет из-за некорректности данных). Единственное но, если одно приложение послало подряд не в транзакции два insert-а, никто не гарантирует что у них idenitity поля после вставки будут отличаться на единицу.

    И не стоит реализовывать в клиентской программе логику, например:
    вы вставили значение в таблицу c identity ключом, получили его на клиенте и по привычке однопользовательской БД решили получить количество записей в таблице как значение idenity поля (при условии что данные из нее вы не удаляете) для дальнейших действий. Вот тут может не прокатить, так как между последней ВАШЕЙ операцией Insert может кто-то еще вставить данные и вы не учтете их в логике приложения.

    P.S.
    Также помните, если вам надо выполнить в базе данных подряд несколько логически связанных операций , то оформите их как транзакцию - логический неделимый блок операций. При этом операции будут выполнены подряд последовательно, результат будет:
    -отражен в БД данных при условии , что все операции выполнены корректно
    -полностью отменен и БД восстановит состояние, в котором она была до выполнения первой операции в транзакции при условии, что какое либо действие в транзакции не исполнилось.
    Ответ написан
    1 комментарий
  • Имея на вооружении Laravel и Yii есть смысл в Ruby (Ruby and Rails)?

    @kuftachev
    Поучить что-то новое всегда имеет смысл!

    Но вопрос в том, что учить. PHP - это лучший серверный язык для веба. Всякие высеры на этот счёт идут со времён PHP 4, сейчас он на 10 голов превосходит Ruby и Python. Он имеет нормальное ООП, инкапсуляцию, при этом исполняется быстрее. Так же, то что Вы уже упомянули, можно положить проект хоть на дешёвый хостинг, если нет нагрузки, то хранить куча сайтов за 5 евро. Уже давно не нужно стесняться PHP.

    У Python есть свои плюсы, но явно не для веба.

    На счёт ЗП, тоже все очень условно. О PHP стереотипы идут от засилия говнокодеров, хороший PHP-шник, который знает что такое ООП, DDD и другие важные вещи получает на уровне с другими программистами.

    Если не для общего развития, а для профессии, я присоединяюсь к совету на счёт штудирования фронта. Vue.js или Angular. Быть full-stack полезнее, чем знать несколько серверных технологий.

    Так же, был хороший совет про Golang, но нужно понимать нужен ли он Вам, где Вы сможете его применить. Но вообще, это сейчас лучший язык, по моему мнению.
    Ответ написан
    4 комментария
  • В чем разница = и == в php?

    DevMan
    @DevMan
    = - присваивание
    == - сравнение

    тащемта такие вопросы задавать должно быть стыдно и невыносимо больно.
    Ответ написан
    7 комментариев
  • Как сделать PDO + IN?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Вот вырезка

    /* Execute a prepared statement using an array of values for an IN clause */
    $params = array(1, 21, 63, 171);
    /* Create a string for the parameter placeholders filled to the number of params */
    $place_holders = implode(',', array_fill(0, count($params), '?'));
    
    /*
        This prepares the statement with enough unnamed placeholders for every value
        in our $params array. The values of the $params array are then bound to the
        placeholders in the prepared statement when the statement is executed.
        This is not the same thing as using PDOStatement::bindParam() since this
        requires a reference to the variable. PDOStatement::execute() only binds
        by value instead.
    */
    $sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
    $sth->execute($params);


    То есть, по сути, тебе можно вручную вот такую шнягу сделать
    'WHERE id in (?,?,?,?,?,?,?)'
    
    и собачить типизированные параметры
    
    ->bindParam(1, $id, PDO::PARAM_INT);
    ->bindParam(2, $id, PDO::PARAM_INT);
    ...
    
    Но это за тебя сделает
    
    вот эта штука
    
    $place_holders = implode(',', array_fill(0, count($params), '?'));
    
    насколько я понял.

    тадам
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    @immaculate
    Программист-путешественник
    Когда я начинал, у меня тоже был стресс от несоответствия ожиданий действительности. Ведь пока читаешь книги, кажется, что разработка ПО — это что-то идеальное, строительство безупречных воздушных замков. А в реальности каждый день приходится иметь дело с костылями, big ball of mud, и, даже, ужас какой, самому писать костыли.

    Надо понять, что жизнь — это жизнь. В книгах и кино всегда лишь идеализированная однобокая картина жизни.

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

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

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

    syschel
    @syschel
    freelance/python/django/backend
    Да, проблема есть, НО вы не туда смотрите. У вас типичная проблема новичка, она в иной плоскости. Вы слишком самоуверенны и считаете что много знаете/умеете/достойны_большего. В начале кажется многое "не нужным" и "глупым". Хочется не использовать фреймворк, а писать самому. Хочется написать очередной велосипед и свою ОС.
    Обратная сторона самоуверенности, это стремление вообще всё возможное покрыть сторонними библиотеками. Даже если это есть в вашем фреймворке и вызывается одной функцией, то всёравно гуглить отдельную библиотеку.

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

    Bandicoot
    @Bandicoot
    Вась-программист
    Это и есть самая настоящая работа программиста)
    Можете попытаться сменить место работы, но на новом будет примерно тоже самое.
    Смиритесь или попробуйте себя в других профессиях.

    Но если есть на что жить помимо зарплаты, можете попробовать заняться своими проектами. Там вы будете хозяином положения, ощутите себя творцом. Но выстрелит ли хотя бы один из них - это вопрос...
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    @deliro
    Как преодолеть такой кризис?

    1. Уволиться, пойти поработать кассиром/грузчиком/официантом/таксистом (но надо иметь свой бизнес);
    2. Понять, что даже писать CRUD не так утомительно и скучно;
    3. Радоваться тому, что есть.

    Как на самом деле работают программисты?

    90% времени думают, 10% времени пишут.

    А ещё, говорят, ИТ не сводится к одному ДС. Можно попробовать что-то другое.
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    99% программистов 90% времени занимаются отловом багов в махровом легайси или формошлёпством. Есть только один способ попасть в 1% настоящих творцов - быть творцом, способным написать что-нибудь поистине выдающееся.
    Ответ написан
    4 комментария
  • Самообразование, веб-разработка. Как выйти из тупика?

    @MaksMit
    Привет Петр! Рекомендую не слушать этих зазноб которые говорят "ты ни о чем" и "что ты себе вообще думаешь, мало работаешь", "твой код гавно" и т.д.

    Тут мне кажется во-первых тебе нужно понять и осознать самому несколько простых вещей.
    А именно:

    1. Работа программиста достаточно сложная и нудная в каких-то моментах. Нет такого, что ты что-то выучил и все, вздохнул и делаешь себе. Она подразумевает постоянный поиск решения поставленных задач. И со временем ты почувствуешь сам что где-то в чем-то уже разбираешься, а где-то примерно знаешь как надо делать но нужно еще разобраться, это постоянное совершенствование. Ну а чтобы это было вот тебе 2 пункт:

    2. Определись с направлением в котором хочешь себя попробовать. Не распыляйся на все подряд. По сути на первых парах тебе нужно знать основы, чтобы ты мог делать простые вещи, а за простыми вещами пойдут сложные ибо это база! Без нее никак

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

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

    P.s. и да, не отчаивайся, это долгий трудный путь, запасись терпением и все получится!
    Ответ написан
    1 комментарий
  • Самообразование, веб-разработка. Как выйти из тупика?

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

    Зачем вам дизайн, если нацелены на бэк?

    Требования к джуниору отличаются от компании к компании. Что вы там такого ужасного увидели, что у вас руки опустились?
    Ответ написан
    Комментировать
  • Самообразование, веб-разработка. Как выйти из тупика?

    @spaceatmoon
    Скажу прямо - ваш таймер отстой. 300 строк кода непонятно чего. Ну 60 строк, ну 80, но блин 300?

    Изначально я нацелен на серверную часть

    И что вы предприняли
    Ведь по хорошему да же разработчику клиентской части необходимо знать серверную часть.

    Так, мы про вашу цель говорим или про чью то чужую? И если вам так угодно, то вообще ни разу. Вы можете к примеру скачать OpenServer и сделать для каждого запроса отдельный php файлик, который будет вам отдавать статику. К примеру так.
    <?php
    echo json_encode(['firstname => 'Иван', 'lastname' => 'Иванов']);

    Как видишь, тут больше от тебя как фронтендеру ничего не требуется.

    обучаюсь около года. В среднем получается 1.5 часа в сутки

    Не хочу хвастаться, но я php почитал 2 недели на w3school на лавочке в деревне перед работай и всё. А до этого я всего лишь работал верстаком несколько месяцев, тут я конечно дольше попотел. Исходя из этого мне кажется вы просто боитесь идти работать по серьезному. Сколько можно в девках бегать?

    Изначально я нацелен на серверную часть.

    А теперь медленно вдыхаем и выдыхаем frontend из лёгких. Наступает чувство успокоения. Слышишь как куллер бп сервера жужжит? Нет? А он жужжит. Good luck.
    Ответ написан
    Комментировать
  • Поможете выбрать ресурс по изучению JS?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я наставничаю в той самой htmlacademy, и частенько студенты приходят, не умеющие программировать от слова совсем. Им курс дается тяжело, приходится их вытягивать буквально за жабры и разжевывать все мелочи, что, в целом, в мои обязанности и не входит вовсе.

    Поэтому перед академией я настоятельно рекомендую на три круга прослушать под запись курсы Zorax Или JavaScript weird parts на ютубе, почитать/послушать Кантора, это раз.

    Прорешать 30-40 задачек на кодварс (я там прокачиваю некоторых своих студентов), это два.

    И вот уже после этого идти в академию, тогда от курса будет максимальный толк и отдача.
    Ответ написан
    1 комментарий
  • В какой последовательности изучать JavaScript?

    @AlexaZem
    Здесь уже все четко отписали.
    JavaScript
    Gulp && WebPack
    Angular || Vue.js || React.js
    Node.js

    Единственное, что хотелось добавить.
    При выборе фреймфорка лучше не ориентироваться на хайповые статьи типа Angular vs React.js и т.д.
    У каждого свои особенности, прилагающийся стек и "идеальная" область применения. (а всякие сравнения скорости билдов-рендеров, веса приложения вам на начальном этапе ситуацию не разъяснят, та и нет каких-нибудь киллер фич, которые позволяют какому нибудь фреймворку жестко доминировать)) )
    Поэтому лучше отталкиваться от того - какого вида веб приложения Вам больше хотелось бы разрабатывать.
    Ответ написан
    Комментировать
  • В какой последовательности изучать JavaScript?

    @deliro
    Ангуляр, вью и реакт — это всё SPA фреймворки. Достаточно хорошо пользоваться одним, остальные можно не учить, использовать только при надобности.

    JS сам по себе объёмный, все эти инструменты, что ты перечислил, не составят и 5% от JS.
    Там ведь есть ES5, ES6, ES7, ES8, зоопарк старых браузеров, которые, возможно, придётся поддерживать.

    jQuery — это не "начать изучать". Это либа, как lodash, например, которая просто используется и гуглится способ её использования. И читается за пару вечеров документация. Она, кстати, идёт в разрез с SPA фреймворками, потому что использует императивный подход, а они — декларативный.

    Node.js — это вообще отдельная тема. Это тоже JS, но отдельный. Он не выполняется в браузере. И для мозга лучше воспринимать ноду — как другой язык.
    Ответ написан
    Комментировать
  • В какой последовательности изучать JavaScript?

    rim89
    @rim89
    программист-велосипедист
    Нет
    1. Сперва нужно понять для чего он вам нужен
    После выбрать стек для этого:
    JS - это нативный язык, основа.
    Всё остальное - это дополнения.
    JQUERY - самое просто из списка, доп библиотека, которая облегчала работу с селекторами и XHR запросами
    Gulp - это менеджер задач, т.е. автоматизация рутинных работ, например по сборке проекта
    WebPack - это большой комбайн, в который перекрывает своим функционал Gulp и другие "помощники"
    Angular / Vue / React - это фреймворки, экосистемы со своими особенностями.
    Angular - требует знания TypeScript - надмножество над JS со строгой типизацией и не только.

    Node.js - это серверная вариация JS
    MongoDB - база данных

    Т.е. как видно отдельные области применимости. Чтобы решать какую то задачу все знать не нужно. Поэтому нужно определиться что нужно / требуется.
    Ответ написан
    Комментировать
  • Как бороться со спамом оператора через выплывающие уведомления?

    Это называется "Хамелеон", в настройках симки отключается. Кстати такая штука есть на всех операторах, но называется по-разному
    Ответ написан
    Комментировать