• Сколько return может быть в методе?

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

    UPD: В структурном программировании есть концепция "single entry and a single exit", которая кабы говорит нам, что "return early" - это плохо. Начинать читать можно отсюда https://en.wikipedia.org/wiki/Return_statement#Mul...
    Ответ написан
    Комментировать
  • Поможет ли такой php-код защититься от sql-инъекций и XSS, какие в нём есть уязвимости?

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

    Но самый, конечно ад - это ответы.

    Когда начинаешь этим щеночкам объяснять, что такое инъекция, и как от нее защититься, все начинают шипеть - "да знаем уже, учоные!". Но когда доходит до дела - такой ад выдают, что становится понятно. Не учёные, а все те же обезьяны, которые вызубрили пару заклинаний, но по традиции не понимают, ни как эти заклинания работают, ни для чего они нужны.

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

    И это неловкое чувство, когда 2015 году слышишь самую заветную мантру мадагаскарских гамадрилов: "mysql_real_escape_string зашышает от ынъекцый!". Стоит, блин, такой "устаревший", но еще крепкий архангел с пылающим мечом, и разит супостата прямо в темечко - вот так представляет себе принцип работы этой функции средний пользователь похапе.
    Ответ написан
    Комментировать
  • Как загрузить файл на другой сайт?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если оба сайта на одном и том же веб-сервере, то просто записать в нужную папку.
    Если на разных, то - сюрприз! - на site2 должен быть установлен какой-либо механизм приема файлов. И уже под этот конкретный механизм надо искать реализацию.
    Ответ написан
    Комментировать