Архив рубрики: Web

Как защитить phpMyAdmin

Защита phpmyadminСуществует множество способов уменьшить вероятность взлома phpmyadmin и самый надежный из всех — это отказ от его использования.

Для большого числа пользователей и администраторов phpmyadmin является самым подходящим под их задачи инструментом и поэтому его можно встретить почти на каждом сервере.

Рассмотрим несколько самых простых способов защиты от несанкционированного доступа. Читать далее Как защитить phpMyAdmin

Виртуальный выделенный сервер

firstvdsДа, для размещения своих проектов я использую vds-серверы от компании FirstVDS.

Начинал я, как водится, с виртуального хостинга, затем, когда понял что перерос их, взял на пробу vds у одного из недорогих хостеров. Пара проектов показала, что vds — отличная замена шаред-хостингу. И это даже не смотря на то, что хостер попался не очень быстрый. Чуть позже начал поиски альтернативы — скорости, надежности и не слишком большой цены. Тестировал четырех кандидатов и, в итоге, выбрал FirstVDS. Читать далее Виртуальный выделенный сервер

10 самых популярных вопросов по html на собеседованиях

html51. Валидация html разметки

Рассмотрим следующий код:

Можно ли считать его валидным? Если нет — объясните почему? Читать далее 10 самых популярных вопросов по html на собеседованиях

Лучшие 5 frontend-фреймворков 2014 года

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

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

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

1. Bootstrap

Bootstrap — неоспоримый лидер среди огромного количества фреймворков. Получивший большую популярность, он постоянно развивается. Это надежный и простой инструмент, который не подведет мастера своего дела. Читать далее Лучшие 5 frontend-фреймворков 2014 года

12 трюков html5 для мобильных устройств

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

1. HTML5 на полный экран

В браузерах android — встроенном до версии 4.3 и других, например Chrome, существует только одно решение данной проблемы. Ширина и высота документа должна соответствовать экрану устройства, тогда нужного эффекта мы можем добиться следующим js кодом:

Google maps использует этот способ для полноэкранного отображения своего контента. Так же, можно легко избежать появления адресной строки при скроле пальцами:

Читать далее 12 трюков html5 для мобильных устройств

Как установить LAMP (linux Apache MySQL, PHP) на Debian 7

Что такое LAMP

LAMP — это устоявшееся понятие, означающее набор программного обеспечения с отрытым кодом, предназначенный для работы веб-сервера. Аббревиатура содержит в себе: linux (операционная система), apache (один из самых распространенных http-серверов), mysql (сервер реляционных баз данных) и php (скриптовый язык программирования).

Возьмем готовый vps-сервер с установленным debian 7, соответственно, linux у нас уже есть. Читать далее Как установить LAMP (linux Apache MySQL, PHP) на Debian 7

CSS: Как перестать заботиться о префиксах

Использование всех возможностей CSS3 позволяет создавать улетные интерактивные сайты. 3D-трансформация, keyframe-анимация, градиенты, блоки разметки — отличные инструменты, но они требуют большого объема работы от разработчика. Различные браузеры имеют разную поддержку как инновационных, так и ставших уже привычными возможностей css3.  Пример того, что я имею ввиду:

Для поддержки свойства transform всеми современными браузерами (все что новее IE8), необходимы две дополнительные строки:

  • с префиксом -webkit-, для Safari, мобильного Safari и Chrome до 35 версии включительно;
    с префиксом -ms-, для IE9.
  • Firefox 16+ и Chrome 36+ корректно работают со свойством transform без префикса.

Читать далее CSS: Как перестать заботиться о префиксах

CSS: Зачем нужны не нужные префиксы?

Sass — мощный инструмент, но он, как любая власть, позволяет легко собой злоупотреблять. Одна из самых популярных ошибок — создание mixin, которые не нужны, на самом деле. Я сейчас имею ввиду не идеи вроде: «А давайте-ка, изобразим икосододекаэдр на чистом css3«, они имеют право на свой кусок почвы под солнцем. Я говорю о бесполезных миксинах, которые никому не приносят пользы.

Префиксы Border-Radius

Целых 0,26 % браузеров на данный момент не поддерживают стандартный border-radius и требуют специальных префиксов. Не 26 %, а всего 0,26 %. Только Firefox 3.6 и ниже, Chrome 4 и ниже, Safari 4 и ниже, Safari iOS 3.2 и ниже нуждаются в специальном префиксе для border-radius. И не спешите закидывать меня старыми клише: «Нужно думать обо всех пользователях», подумайте, что вы сможете сделать для пользователей IE6-8? Скорее всего, вы просто сообщите пользователю, что данный сайт не поддерживает его устаревший браузер. И таких пользователей раз в 10 больше, чем тех, кому можно помочь архаичными префиксами. Да и border-radius не является очень важным свойством, которое рушит всю разметку. Я еще не встречал сайт, который становился не читаемым или не рабочим при удалении border-radius. Читать далее CSS: Зачем нужны не нужные префиксы?

Chrome 39: что нового

На протяжении последних шести лет, браузер Google Chrome активно развивается и новые версии появляются достаточно часто. Не так давно был выпущен новый Chrome 39 и вы, возможно, уже успели его установить. Я выделил для себя несколько приятных и парочку сомнительных изменений.

ECMAScript 6 генераторы

Генераторы — специальные функции, описываемые function*, которые создают итерации. Итератор — это объект, содержащий метод next(), вызываемый для получения значения. Функция генератора использует оператор yield для описание последовательности.

Простой пример использования:

Генераторы ECMAScript6, так же, поддерживаются Opera и Firefox версии выше 31. Читать далее Chrome 39: что нового

Yii2: ArrayHelper

В дополнение к богатым возможностям php по работе с массивами, Yii 2.0 предлагает ArrayHelper, который позволяет более эффективно обращаться с массивами.

Получение значений

Получение одного значения

Получение значений элементов массива, объекта или другой сложной структуры, с использованием стандартных методов php очень часто встречается. Всегда необходимо проверить существование нужного ключа в массиве с помощью isset и тогда получить значение или вернуть значение по-умолчанию:

Yii2 предлагает очень удобный способ сделать тоже самое:

Читать далее Yii2: ArrayHelper

Yii2: Диалоги confirm в стиле bootstrap

По-умолчанию, все системные диалоги confirm используют стандартный javascript alert(). Однако это немного не вписывается в концепцию сайта на Twitter Bootstrap.

Библиотека Bootbox содержит как стандартные методы alert, prompt и confirm, так и метод dialog, создающий модальное диалоговое окно.

Метод confirm описан в файле app/vendor/yiisoft/yii2/assets/yii.js:

Читать далее Yii2: Диалоги confirm в стиле bootstrap

Yii2: Табличный ввод

Зачастую перед разработчиками встает задача реализации пакетного ввода данных для пользователя. Нужно предоставить пользователю возможность создания нескольких сущностей одной модели и сохранения их разом. Чаще всего для реализации подобной задачи используется html-таблица, отсюда и название: табличный ввод.

Вариант 1

Использовать готовые решения, например TabularForm widget.

Вариант 2

Запилить собственную реализацию табличного ввода в Yii 2.0. Читать далее Yii2: Табличный ввод

Yii2: Сохранение и отображение даты/времени

Должно быть, это одна из самых часто возникающих, и в тоже время, очень простая задача для реализации в Yii 2.0.

Зачастую мы сохраняем дату/время в базе данных в одном формате, а вывести на экран ее нужно в другом формате.

Многие уходят огородами и изобретают свои велосипеды. Ниже представлены несколько простых советов, которые помогут в освоении работы с данными в формате дата/время в фреймворке Yii2. Читать далее Yii2: Сохранение и отображение даты/времени

Как скрыть версию Apache и операционной системы

Ежедневно тысячи «скрипт-киддисов» бороздят просторы интернетов при помощи специальных сканеров, анализирующих версии серверного программного обеспечения на предмет наличия уязвимостей, упрощающих удаленный взлом. Например версия  устаревшего Apache может выдать уязвимость, через которую злоумышленник сможет загрузить шелл и скомпрометировать безопасность всего сервера.

Список сайтов со старыми, уязвимыми версиями скриптов, cms, форумных движков можно найти в любой поисковой системе. Читать далее Как скрыть версию Apache и операционной системы

Не загружается файл в wordpress

Я часто встречаю в сети вопросы пользователей wordpress и других cms вроде этого:

При попытке загрузить файл, сервер выдает ошибку: Не удалось загрузить файл image.jpg. Невозможно создать директорию wp-content/uploads/2014/09. Проверьте доступность данной директории на запись!

Обычно каталог «uploads» должен иметь разрешения 777 или принадлежать пользователю, под которым работает веб-сервер/php, но в зависимости от используемых инструментов разработчика (Webmin/cPanel/Pleask и других), права могут быть сбиты и это является причиной таких ошибок.

Для решения проблемы необходимо рекурсивно исправить права. Один из вариантов — использовать консоль с правами root: Читать далее Не загружается файл в wordpress