• Как и для чего используется php://input?

    @granty
    Данные и так передаются по POST (или GET), но есть нюансы их обработки на стороне сервера.

    1. POST и GET данные в виде parameter=value&param2=val2 автоматически обрабатываются сервером и заполняются глобальные массивы $_POST/$_GET/$_REQUEST:
    $_POST['parameter'] = value;
    $_POST['param2'] = val2;

    GET-параметры при этом ещё и автоматически декодируются по urldecode().
    Через php://input можно получить "сырые" необработанные данные.

    2. Методом POST можно прислать, например, объект JSON, указав 'Content-type: application/json; charset=utf-8'. При этом массив-обёртка $_POST будет пуста, тк не присылается Имя_Параметра, а присылается только Значение_Параметра, и сервер не обрабатывает такие данные автоматически.
    Получить такие данные можно только через php://input, так как глобальные массивы $_POST/$_GET будут пустыми.
    Ответ написан
  • Курс по Vue.js с тяжелым проектом?

    tema_sun
    @tema_sun
    Ситуация такова, что устроился в компанию...


    Вы сейчас проходите самый лучший курс. Мало того, вам за это еще и платят!
    Ответ написан
  • Что такое авторизация на токенах?

    megafax
    @megafax
    web-программист
    https://gist.github.com/zmts/802dc9c3510d79fd40f9d...
    Вот тут прям все подробнейше, а еще лучше коменты к статье
    Ответ написан
  • В PHP канонично сначала проверить, потом сделать или попробовать и обработать ошибку?

    @FanatPHP
    Чебуратор тега PHP
    Очень хороший вопрос и тема, в которой самое чудовищное количество самых дремучих северий на единицу кода.

    В общем случае, по умолчанию, никаких проверок и траев с кетчами быть не должно.

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

    Пример: В обоих приведенных выше случаях мы имеем масло масляное: попытка подменить пхп в выборосе ошибки. Вопрос - зачем? Если файл не найден, то РНР сам прекрасно сообщит нам об ошибке, причем в подробностях, и скажет в чем конкретно заключается проблема. А по строчке "file not found" иди гадай - путь ли кривой или в имени файла опечатка, или вообще пустоту передали.

    Любые проверки надо делать только тогда, когда есть осмысленный сценарий их обработки.

    И обсуждать выше приведенные примеры имеет смысл только если автор вопроса предоставит такой сценарий. тупое error: file not found таким сценарием не является. Так что в общем случае оставляем код в покое и не устраиваем никакого карго культа из перехвата ошибок.

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

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

    Но повторюсь, если нет никакого осмысленного сценария обработки ошибки, то ловить её не надо.
    Ответ написан
  • Как обезопасить POST запросы?

    @FanatPHP
    Чебуратор тега PHP
    Никак.

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

    Единственные условно действенные методы "защиты" - это, в зависимости от задачи - авторизация и каптча.

    CSRF - это немного из другой оперы. Защищает от того, чтобы авторизованный на твоем сайте пользователь не совершил какое-либо действие, нажав кнопку на стороннем сайте.
    Ответ написан
  • Реально получить заказ веб-мастеру и контекстологу на бирже ФЛ?

    gzhegow
    @gzhegow
    Думал, стану умнее, когда адаптируюсь, но нет
    Ну если на секундочку тебе кажется что человек у которого есть что делать идет на биржу фрилансеров - то это очень не всегда так. На бирже сидят матерые волки, которые ищут как сделать ЕЩЁ дешевле.

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

    На фриланс идут с мордой-лопатой и убежденностью, что лучше тебя в этом мире никто не делает. Да, это враньё. Но на рынке кто не врёт, тот дурак.

    Мораль? Не будь частью рынка, ищи тех у кого проблема, а не тех, кому "сказали" или кому "надо сделать". А если таки идешь на фриланс, одевай доспехи, которые не пробить никакими мольбами и будь готова, что ты попала в квартал, где скажут любые слова, лишь бы ты сбросила цену, а еще лучше - сделала бесплатно

    Кстати маленький пример. Вот есть сайт МойКруг где периодически светятся вакансии со средними зарплатами "в целом по селу" и есть премиум вакансии, который ну это ж еще проплачивать надо, то есть ну ооочень нужен специалист. И там вот зарплаты указаны. По этим зарплатам можно видеть что отличная зарплата айтишника - это вот что-то 2-2,5 тысячи долларов. А на собеседование приходят ребята, которым я даю задачу, а они начинают там выкручиваться - не такая задача, нету тз, нету того, нету этого, плохая задача, плохой Гриша... А когда они с моей помощью каким-то чудом её решают, они вдруг радуются и называют зарплату в 3 тысячи зелени. Или четыре.

    А я в курилке вопросы ребяткам задаю - сколько получают, ну так местами. И говорят эти цифры не с потолка, то есть да, получают и три и четыре. А я один получаюсь идиот кто работает за вдвое меньше. Это я всё к чему. Зарплата или гонорар никак не характеризуют, как ты делаешь. Вознаграждение это мера доверия к тебе помноженного на боль от проблемы.

    Никто не говорит, что доверие зарабатывается помощью - это только один из способов. Можно речи громкие про честность и бога толкать - тоже немного повышается. Оно еще и шумом зарабатывается. Свой блог, канал, куча подписчиков, толпа людей - формирует во первых твою самооценку, во вторых - ты приходишь на собеседование или в случае с фрилансом - на переговоры - и просто показываешь "смотри, дескать, я крутой" - сразу оп, плюс кредит доверия. Теперь нужно потянуть за яйца и доказать, что проблема грозит ему больше, чем он думает - оп, кредит боли. Перемножили, получили цену. Ну то есть смешно рассуждать, но всё это вытекает из воровской природы денег. Деньги вроде как должны были заставить ленивых работать, а на самом деле они позволили ленивым НЕ работать, а работяги будут херачить днями без перерыва и у них все равно денег не будет.

    Это во многом доказывает почему "технологии" никуда не движутся. Их двигают те, кому пора уже подымать зарплату, придумывая новую упаковку для существующих техник работы. А те кто придумывают новые концепции - сидят, блин, дома и никто про них не знает. Плохо? Нет, просто пока существуют деньги - по другому невозможно. (ps. для тех кто придумывает дома придумали классную мышеловку - приходите на собеседование уже с готовой идеей (звучит так обычно = "у вас есть свой проект на github, сбросьте на оценку", иначе - не тратьте наше время. Таким образом твою идею бесплатно получает кто-то ещё. А потом тебя могут не взять, и никто, как говорится, не виноват, вы же сами пришли)
    Ответ написан
  • [PHP] DataBase на ООП, как лучше написать?

    search
    @search
    мама говорит что я особенный
    Вот тут вкратце описаны все популярные шаблоны проектирования DB слоя https://gist.github.com/codedokode/c4cbc4d7dc8e45ea074a

    Выбирайте тот что вам по душе и кайфуйте.

    Попробуйте DataMapper. Он довольно прост в реализации (вам даже либа не пондобится. Ну разве что стандартная PDO) и меньше чем ActiveRecord склоняет программистов к говнокоду. Ну и гораздо менее тяжеловесен чем полноценная ОРМ. Для понимания и закрепления ООП - самое то.

    Только что попробовал поискать примеры в русском тырнете, но ничего вменяемого не нашел. Попробуйте сами погуглить ради интереса.

    Вот очень подробная статья на инглише https://www.sitepoint.com/integrating-the-data-mappers/

    А самый, на мой взгляд, лучший пример, предоставлен японцем (не пугайтесь иероглифов, смотрите код): https://github.com/hirak/pdo-datamapper-example
    Ответ написан
  • Есть ли готовые скрипты защиты от парсеров для nginx?

    @FanatPHP
    Чебуратор тега PHP
    И тут Грегор понял, что произошло. Эти существа не могли тушить лампы: галлюцинация не в силах воздействовать на неодушевленные предметы. Он вообразил, что в комнате становится темнее и… Он сам расстрелял свои лампы! Подсознание опять его надуло. Теперь Теневик смело шагнул вперед. Бластер был бессилен.
    Роберт Шекли, "Призрак-5"


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

    @TimurBaiguzhaev
    Помните, как родители заставляли вас играть на фортепиано или учить стихи?.. Так вот, Абстрактные классы также как и многие родители вовсе и знать не знают зачем ребенку-потомку это будет нужно, и как он это будет использовать, но уверены, что так НАДО! Т.е. такие классы содержат абстрактные методы, которые являют собой объявление метода без самой реализации, как фантик без конфетки, тем самым обязывая потомка, этот метод реализовать. Как и в жизни, где родители нередко перекладывают на детей свои нереализованные мечты…

    Вот в такой шутливо-серьезной форме, мы затронули тему абстрактных классов и семейных отношений, как способ понять… и то и другое?.. А если серьезно, то разумеется, в программировании не должно быть случайных методов, и любые методы и свойства являются частью продуманной иерархии классов, которая как генеалогическое дерево, может давать возможности расширять функционал от поколения к поколению. А абстрактные классы, и еще более абстрактные – интерфейсы ( interface — вообще не содержит реализаций ), помогают программисту не потерять, не забыть реализовать общие необходимые для всех потомков умения в жизни, без которых особь умрет, а с ней и приложение.


    Источник : habrahabr.ru

    Abstract classes in JavaScript
    Ответ написан
  • Можете посоветовать книжку по проектированию баз данных?

    slinkinone
    @slinkinone
    Агент "Везде успеть"
    Программирование баз данных SQL. Типичные ошибки и...
    Отличная книга, которая проливает свет на проектирование и типичные ошибки.(то бишь паттерны)
    Ответ написан