Рубрика «php» - 237

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

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

Disclamer: Это моя вторая статья на Хабре. Я программист и литературно писать статьи (даже на техническую тему) у меня пока получается плохо.

Статья написана после очередной вакансии «PHP программист», в которой в обязанностях было все: дизайн, проектирование баз данных, логика, верстка…
Читать полностью »

Отображение статусов ICQ, Jabber, Skype и MRA на сайте в произвольном виде

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

Для начала определим наши задачи:
— по возможности использовать официальные сервисы определения статуса
— в случае их отсутствия можно прибегнуть к посторонним
— способ должен быть как можно проще, без излишков (всегда можно будет его потом расширить)
— чтобы прорисовка страницы не висла на время запроса, сделаем буфер

Рассмотрим 4 основных способа на примере ICQ, Jabber, Skype и MRA. Остальные можно сделать аналогично.
Читать полностью »

В этом посте я поделюсь опытом и проблемами, с которыми мы столкнулись при работе с платформой приложений Mamba.

Читать полностью »

Из-за того, что приходится использовать различные фреймворки, но писать, по сути, одно и то же рано или поздно начинает преследовать дежавю. Для php это особенно актуально, часто приходится как выбирать платформу под заказчика, так и допиливать уже имеющийся проект. Вроде бы, нет ничего проще — написал один раз код и таскай его за собой. Но различные API и организация файлов не дают это сделать естественным образом. Очевидное решение — организация своего «багажа» в виде классов. Тогда конкретное приложение (модуль, компонент) как раз будут связывать API фреймворка (или CMS) с вашим классом. Проблема организации файлов имеет также вроде бы очевидное решение — инклудишь нужный класс и всё. Но не зря же все активно пользуются различными фреймворками, а не пишут все с нуля — лучше сосредоточиться на новых задачах, а не думать как «подцепить» уже готовое. Посему я и написал небольшой класс, фабрику-загрузчик.
Читать полностью »

Добрый день, уважаемые посетители Хабра.

Договориться можно обо всемДоговориться можно обо всемДоговориться можно обо всемДоговориться можно обо всем

Несколько дней назад я прочитал замечательную книгу Гэвина Кеннеди «Договориться можно обо всем». Как верно отмечает автор, мы ведем переговоры с первых лет своей жизни, начиная еще до того, как научимся толком разговаривать, и важность правильно вести переговорный процесс, что в личной жизни, что в работе, очень сложно переоценить. Книга произвела на меня отличное впечатление, и я искренне рекомендую всем, при наличии свободного времени, ее прочитать. В процессе ознакомления с материалом, Гэвин предлагает читателям несложные тесты, и, далее, дает развернутые комментарии тех или иных наших ответов, классифицируя читателей по 4 категориям: Ослы, Овцы, Лисы и Совы, согласно умению вести переговорный процесс. Именно эти тесты, а точнее необходимость их автоматизации, и побудила меня написать этот пост на Хабре. Хотите проверить свой талант переговорщика? Читать полностью »

ololosha-company
В предыдущих статьях: часть 1 и часть 2 мы реализовали шаблон MVC и «набросали» простой роутер. Сегодня мы реализуем доступ в админку с помощью контроллера авторизации. Эта статья — заключительная.
Читать полностью »

ride-the-wheels
В предыдущей статье мы построили простейший MVC каркас и убедились в легкости и элегантности этого архитектурного шаблона. У нас был всего один контроллер — контроллер главной страницы с единственным действием (метод index) для отрисовки вида. В этой статье мы добавим класс для работы с маршрутами и модифицируем класс Load для разделения вида на общий для всех страниц шаблон и шаблон контента.
Читать полностью »

bicycle
Многие начинают писать проект для работы с единственной задачей, не подразумевая, что это может вырасти в многопользовательскую систему управления, ну допустим, контентом или упаси бог, производством. И всё вроде здорово и классно, всё работает, пока не начинаешь понимать, что тот код, который написан — состоит целиком и полностью из костылей и хардкода. Код перемешанный с версткой, запросами и костылями, неподдающийся иногда даже прочтению. Возникает насущная проблема: при добавлении новых фич, приходится с этим кодом очень долго и долго возиться, вспоминая «а что же там такое написано то было?» и проклинать себя в прошлом.

Вы можеть быть даже слышали о шаблонах проектирования и даже листали эти прекрасные книги:

  • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидесс «Приемы объектно ориентированного проектирования. Паттерны проектирования»;
  • М. Фаулер «Архитектура корпоративных программных приложений».

В общем, сегодня речь пойдет о самом популярном (разве что после Singleton) шаблоне проектирования MVC и его простой реализации дабы восполнить пробел и помочь вам в рефакторинге и разрешении неприятной ситуации в которую, возможно попал ваш проект.
Читать полностью »

Однажды в далеком 2009 году я делал сайт для музыкантов. Единственным средством обратной связи на сайте была гостевая книга. Чтобы не пустить ботов, спамеров и нехороших людей, нужна была капча. Так как сайт для музыкантов, то я подумал, пусть капча тоже будет музыкальной.

То, что получилось, выглядит примерно так:
Как я делал нотную капчу

или так:
Как я делал нотную капчу
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js