Множественные формы слов (PHP Класс)

5 комментариев

Все наверное замечали как на многих сайтах встречаются нелепые предложения в которых указывается число неких вещей. А нелепые потому что в них обычно не согласуется форма слова с их количеством. Пример:

  • В вашей корзине 2 заказов. На сумму 121 рублей.
  • Запись имеет 3 комментариев
  • На сайте 32 человек

Вообщем «Кто стучится в дверь моя, видишь дома нет никто, приходи ко мне вчера, будем съели пирожки». Что же делать и как это исправить?

На самом деле ничего сложного нету, и можно научить наш сайт говорить на вполне русском языке.
Читать далее →

Я сертифицированный партнер NetCat

13 комментариев

Чтож поздравьте меня, я сертифицированный партнер NetCat

Уже давно как получил два своих заслуженных сертификата. Все никак не похвастаюсь тут)
Кароче я теперь мего крут! =)

Никогда не доверяй своим пользователям

1 комментарий

«Не доверяйте своим пользователям. Они могут навредить Вам.»
Дэйв Чайлд

Дэйв Чайлд (Dave Child) стоит за недавно переименованным Added Bytes (ранее ilovejackdaniels.com, сейчас www.addedbytes.com) — сайтом, где приводятся написанные Дэйвом шпаргалки по многим языкам программирования. Он работал на многие компании в Великобритании и добился признания в мире программирования.

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

Теперь разберем все возможные данные передающиеся от пользователя в контексте PHP, а точнее глобальные массивы $_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION и $_ENV.

Дада! $_SERVER, $_SESSION и $_ENV — тоже не безопасны!

PS: статья — НЕ перевод, как может показаться из вступления. Я привел лишь очень удачную цитату. А сама статья — это описание моей личной точки зрения.
Читать далее →

Реализация Captcha без БД

16 комментариев

На данный момент все известные капчи делятся на категории

  • Хранение некоего ключа в базе данных
  • Хранение некоего ключа в сессии
  • Без хранения каких либо данных

Минусы первых двух видов — это необходимость работы с файлами (для БД — операции запись/чтение, а  для сессий это еще и создание файлов). Плюсы же — это высокая защищенность и простая реализация.

На данный момент все известные реализации капчи из третьей категории являются не защищенными. Но плюс у них — это отсутствие работы с файлами. Допустим при массовой атаке спам ботов не засирается таблица в БД и не засирается папка с сессиями. Читать далее →

Рисуете ли вы ваши алгоритмы на бумаге?

10 комментариев

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

Теперь же у меня переодически возникает потребность визуализировать свои алгоритмы, архитектуры, связи и прочее. Почему? Читать далее →

Пишем PHP фреймворк, модель MVC (4%)

14 комментариев

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

Естественно за основу будет взята модель MVC. В веб программировании MVC — самая, на мой взгляд, «правильная» модель архитектуры. Читать далее →

Точное определение браузера пользователя

12 комментариев

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

Определение происходит на основе заголовка User-Agent. То есть по сути никаких новых методик, но впечатляет количество определяемых браузеров. Также класс достаточно удобен в использовании.

Ссылка на источник: chrisschuld.com
Ссылка на архив: Browser-1-9.zip Читать далее →

Немножко о типизации и сравнениях в PHP

2 комментария

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

Пишем PHP фреймворк, начало (2%)

2 комментария

Добро пожаловать в цикл статей «Пишем PHP фреймворк». В данном цикле я буду поэтапно описывать как написать свой фреймворк. Обратите внимание в заголовке указан процент — это приблизительное количество выполеного объема работ по написанию своего php фреймворка.

Собственно сегодняшнюю дату можно считать датой начала разработки Intellect Framework-а. Напомню, я хочу разработать свой php фреймворк. Тока прошу, не надо мне говорит о том что таких фреймворков уже создано достаточно много, и что сейчас PHP разработчику достаточно выбрать какой нибудь из них, а не разрабатывать свой.
Читать далее →