Загрузка файла через форму на PHP

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

Весь процесс загрузки файла на сервер происходит следующим образом. Нарисованная нами форма отправляет файлик на сервер через POST. Сервер сохраняет файл во временном хранилище, запускает скрипт, который после некоторых манипуляций(например, различные проверки безопасности) копирует файл из временного хранилища в постоянное. На деле, реализовать это еще проще, чем рассказать. Поэтому сразу приступим, и начнем с создания формы.

HTML форма для загрузки файла

Первым делом построим самую простую форму с двумя полями: специальное поле для загрузки файла(input type=file), и кнопка «отправить». Методом отправки данных будет POST. Кроме того, необходимо указать способ кодирования данных при отправке, с помощью атрибута ecntype.

читать далее «Загрузка файла через форму на PHP»

Установка капчи для комментариев WordPress без плагинов

Доброго времени суток, дорогие друзья! Сессия закончилась, впереди небольшие каникулы. Жаль, но не успею я и духа перевести, как начнется следующий семестр. Не смотря на то, что времени заниматься сайтом практически не было, на свет недавно появился мой собственноручно написанный калькулятор шифра Цезаря, реализованный по алгоритму из одноименной статьи. Причин для его создания было две: невероятная популярность шифра Цезаря в интернете, и отсутствие калькуляторов с функцией взлома методом частотного анализа. Поэтому я решил внести свою лепту в эту историю.

Конец предыстории, вернемся к делу. Причиной написания этой статьи послужил ужасный спам в комментариях! За неделю мне приходилось удалять около сотни предложений купить всякий мусор. Логично, что я задумался о действительно серьезной капче на сайт, ставить ввод циферок очень не хотелось, кому нужно вводить циферки в 2016 году?

В голову пришла идея попробовать гугловскую «ReCaptcha». Подробнее о том, что это такое, и общий принцип ее установки вы можете прочитать в моей прошлой статье. А сейчас я разберу конкретный пример внедрения капчи для комментариев в WordPressе.

Весь процесс установки можно логически разбить на три шага.

  1. Добавить капчу к форме комментариев в HTML коде;
  2. Написать логику проверки капчи;
  3. Заставить WordPress сверять капчу каждый раз при добавлении комментария.

Пойдем по порядку.

читать далее "Установка капчи для комментариев WordPress без плагинов"

Установка ReCaptcha v2.0 на любой сайт

ReCaptcha logoДоброго времени суток, друзья! В этой статье я постараюсь подробно рассказать о процессе установки и настройки самой лучшей капчи от Google. Почему самой лучшей? Потому что к черту ввод циферок с картинок и прочие ужасы, спасибо большое нашему «старшему брату» за новую технологию. Клик, и ты не робот.

Речь пойдет о второй, улучшенной версии ReCaptcha. После обновления значительно упростился процесс проверки на стороне сервера, больше не нужно подключать целую библиотеку, разбираться в ней и прочее. Единственная сложность в том, что мне показалась недостаточной инструкция с официального сайта, поэтому пришлось немного поколдовать. Но в итоге я понял принцип установки и готов им поделиться.

читать далее «Установка ReCaptcha v2.0 на любой сайт»

Zend Framework 2 + Doctrine. Сущности и связи

Приветствую всех, кто заскочил! В прошлой статье я дал обзорную характеристику ZendFramework и ORM Doctrine, рассказал, как это все установить.

Пришло время посмотреть реализацию!

Что такое Entity

В соответствии с принципом MVC, первым и самым фундаментальным элементом системы является модель. В случае с нашей ORM модель носит название Entity, или сущность. У нас, как и у любого серьезного проекта, есть база данных со множеством таблиц. Так вот, сущность олицетворяет собой программное «отображение» таблицы БД.

Одна таблица — одна сущность.

читать далее «Zend Framework 2 + Doctrine. Сущности и связи»

Zend Framework 2 + Doctrine. Настройка и структура проекта

Привет всем! С этой статьи я начну погружение в удивительный мир Zend Framework 2. Не могу точно сказать, насколько глубоко уйду, но настройка и простейший пример реализации будут точно. С первого взгляда Zend для меня показался просто жуткой бессмыслицей. Зачем прятать работу с базой данных в такую замысловатую ООП оболочку? Нам давали задание написать простейший каталог интернет магазина и там мы вполне обошлись безо всяких фреймворков.

Но все мои возмущения улетучились, когда этап настройки миновал и началась, непосредственно, реализация. Фреймворки — это круто! Стоит один раз пройти через круги ада и понять, как все работает и сразу круто! Давайте вступим на самый первый круг и поймем, что это вообще такое и что здесь происходит.

читать далее «Zend Framework 2 + Doctrine. Настройка и структура проекта»