PHP скрипт. Simple URL checker - контроллер

Сегодня я продолжу рассказ о разработке web приложения, выполняющего проверку URL.
Но, прежде всего, кратко напомню, что уже сделано на данный момент. Мы определились со структурой приложения и базы данных, установили и настроили фреймворк, а также написали модели для работы с БД.
Примечание. Ссылки на все предыдущие статьи находятся здесь.
Теперь самое время заняться контроллером.
Т.к. приложение довольно простое нам вполне хватит одного контроллера, назовем его main. Кстати, при настройке CodeIgniter в файле routes.php мы указали, что этот контроллер должен загружаться по-умолчанию.
Со структурой приложения и его функциями мы уже определились, переходим к написанию методов контроллера.
Читать дальше »
Опубликовано в CodeIgniter, PHP, Web разработка | Комментариев нет »
Разработка web приложения для проверки URL (структура)

В прошлый раз я начал рассказывать о разработке небольшого web приложения, выполняющего проверку доступности сайтов. Мы уже определились с требованиями к этому приложению (составили перечень функций) и библиотеками, которые будем использовать.
Сегодня мы рассмотрим структуру приложения и базы данных, а также установим и настроим фреймворк.
Итак, структура приложения.
Исходя из перечня функций, нам хватит двух страниц.
Главной (mainpage) – здесь будет размещена таблица с краткой информацией о результатах проверок, ссылки «Удалить» для каждого URL, форма добавления нового URL и кнопка «Пинговать все!», запускающая одновременную проверку всех URL.
Страницы со сведениями по выбранному URL (urldetails). Здесь будет таблица с подробной информацией о результатах проверок (время/дата, результат, размер полученной страницы, время и скорость загрузки). Кроме того, мы добавим ссылки для удаления любого из результатов и кнопу «Пинг».
Посмотреть как выглядят эти страницы можно на скриншотах.
Читать дальше »
Опубликовано в CodeIgniter, PHP, Web разработка | Комментарии (2) »
Разработка web приложения для проверки URL на PHP

Приветствую всех читателей!
Эта статья открывает небольшой цикл о создании web приложения, предназначенного для проверки доступности сайта.
Конечно, выяснить доступен сайт или нет можно, просто набрав адрес сайта в строке браузера, но если такие проверки нужно проводить регулярно, то стоит автоматизировать процесс. Кроме того, наше приложение сможет собирать данные о нескольких сайтах и показывать статистику (скорость загрузки, размер страницы и т.п.). Назовем его – Simple URL checker.
Давайте сразу определимся с функциями приложения. На мой взгляд, в минимальном варианте потребуются:
1) возможность добавлять / удалять URL сайтов;
2) просмотр статистики по всем URL;
3) просмотр результатов проверок выбранного URL;
4) удаление отдельных результатов проверок;
5) проверка всех URL одновременно и каждого отдельно;
6) запуск проверок из консоли (поддержка cron).
Web приложение напишем на PHP, из дополнительных библиотек будем использовать библиотеку cURL и фреймворк – CodeIgniter.
Примечание. Вообще-то первоначально я думал написать просто пост с небольшим примером работы cURL, но этот пример быстро перерос в полнофункциональное web приложение
. Надеюсь, оно кому-нибудь пригодится.
Итак, с функциями приложения и библиотеками определились, в следующий раз мы подробно рассмотрим структуру приложения и базы данных.
Я буду использовать этот пост как сборник ссылок на все статьи этого цикла. Т.е. по мере их написания оглавление будет пополняться. И, естественно, можно будет скачать архив с приложением.
Оглавление.
1) Структура приложения и базы данных
2) Создание моделей для работы с БД
3) Добавляем контроллер
4) Подключаем cURL
5) Создаем страницы
6) Запускаем проверки по-расписанию
Скачать
Архив с приложением (24 кБ)
В архиве находится папка system/application с приложением, файлы simpleurl.sql, cron_cli.php и install.txt с инструкциями по установке.
До встречи!
Опубликовано в PHP, Web разработка | Комментарии (6) »
Как «спрятать» внешние ссылки. Небольшой PHP скрипт

Эта статья об одном из довольно распространенных способов маскировки внешних ссылок (по-английски – link cloaking).
Работает link cloaking следующим образом. Просматривая страницу, посетитель видит обычную внутреннюю ссылку. Но, после перехода по ней – попадает на другой сайт.
На сегодняшний день существует несколько способов создания таких ссылок. Но мы рассмотрим один из самых удачных (с моей точки зрения), не требующий поддержки со стороны браузера.
Идея заключается в использовании редиректа и реализуется в два этапа:
Читать дальше »
Опубликовано в PHP, SEO | Комментарии (15) »
Администрирование сайта. Backup базы данных с помощью PHP скрипта и ограничения хостинга

Недавно я столкнулся с небольшой проблемой. Нужно было организовать автоматическое создание резервных копий базы данных.
Задача, конечно, стандартная, а, учитывая объем базы (меньше 1МБ), может быть решена без специального софта и оборудования.
Так что я выбрал самый простой способ (осуществляется в три этапа):
1) создание дампа БД;
2) упаковка дампа в архив;
3) отправка архива на eMail.
На сегодняшний день, объемы почтовых ящиков позволяют вообще не удалять эти архивы, и надежность решения получается довольно высокой, т.к. данные хранятся на разных серверах.
Т.е. все, что нужно сделать – написать скрипт и запускать его с помощью cron.
Скрипт я решил сделать на PHP, и сразу же столкнулся с проблемой.
Читать дальше »
Опубликовано в PHP, Разное | Комментарии (10) »
Ускоряем разработку. Шаблоны для Eclipse

Вы никогда не задумывались, насколько эффективно используете программы, с которыми работаете? Ведь зачастую они содержат возможности, которые позволяют не только ускорить работу, но и сделать ее более комфортной.
Одной из таких возможностей является автодополнение кода. На сегодняшний день она реализована во многих редакторах, а в IDE стала стандартом де-факто.
Принцип работы этой функции простой. Набираете часть слова, нажимаете Ctrl+Space (может быть другое сочетание клавиш) и появляется список с возможными вариантами автодополнения.
Обычно самые распространенные шаблоны уже установлены в редакторе, но максимальный эффект можно получить если добавить к ним свои собственные.
В общем, небольшим набором таких шаблонов для Eclipse PDT я и хочу поделиться.
Этот набор я создавал для быстрой вставки комментариев в php код (используется формат phpDocumentor).
Скачать xml файл с шаблонами comments_templates.xml
Читать дальше »
Опубликовано в PHP, Разное | Комментарии (6) »
Как реализовать асинхронную загрузку файлов с помощью JavaScript и PHP

В комментариях к одной из предыдущих статей меня попросили показать пример загрузки файлов на север с помощью технологии AJAX и фреймворка CodeIgniter.
Тогда я ответил, что это несложно и пообещал показать пример. Но, я поторопился и забыл упомянуть о паре «нюансов», связанных с этой операцией
. Так что, исправляю ошибку.
Механизм отправки
Прежде всего, нужно четко понимать, что отправить (загрузить) на сервер файл с помощью AJAX нельзя.
Тем не менее, можно организовать процесс загрузки так, что с точки зрения посетителя загрузка будет выглядеть асинхронной. Т.е. посетитель укажет имя файла и нажмет кнопку «Загрузить». После этого, увидит умную надпись вроде «Подождите, идет загрузка…» или какую-нибудь анимацию. А после окончания загрузки – сообщение с результатами. Страница, которую он видит, перезагружена не будет.
Но при этом отправка файла будет выполнена обычным способом.
Идея заключается в использовании невидимого фрейма (iframe), атрибута формы target и JavaScript.
Читать дальше »
Опубликовано в CodeIgniter, HTML, JavaScript, PHP | Комментарии (21) »
Web разработка. Автоматическое создание методов на PHP

Если вы занимались объектно-ориентированным программированием, то, безусловно, знаете, что в реальных приложениях количество методов классов может быть довольно большим. Причем во многих из этих методов код попросту повторяется.
Типичный пример – методы установки и чтения свойств (или, если использовать английскую терминологию, getters and setters). Названия этих методов обычно совпадают с названиями свойств класса, только к ним добавляется приставка get или set.
Примечание. Свойства и методы класса – это переменные и функции, объявленные в нем.
Написать такие методы несложно. По-идее, они должны просто возвращать/присваивать значение свойствам. Но на практике, при присваивании нужно еще и проверять полученное значение.
Теперь представьте, что вы пишите класс, который должен хранить данные одной записи из таблицы в базе данных. А в этой таблице 20 полей. Т.е. нужно написать 40 методов. Они, конечно, простые, тем не менее, каждый все равно должен быть протестирован, а это приличный кусок работы.
В этой статье я покажу способ, позволяющий автоматизировать написание свойств.
Идея заключается в использовании метода __call(). Если этот метод объявлен в классе, то вызовы всех несуществующих методов будут переданы ему. Первый параметр __call будет содержать имя вызванного метода, а второй – массив с переданными параметрами.
Рассмотрим небольшой пример. Допустим, у нас есть класс.
Читать дальше »
Опубликовано в PHP | Комментарии (12) »
PHP framework CodeIgniter. Управление внутренней адресацией

В этой заметке я покажу, как использовать встроенный роутер CodeIgniter‘а для решения одной несложной задачи.
Прежде всего, пару слов о том, что это такое и зачем нужно.
Как вы, наверное, знаете CodeIgniter – это php фреймворк, одними из основных достоинств которого являются простота использования и низкая ресурсоемкость. Тем не менее, его возможности практически не уступают более «тяжелым» аналогам.
Одной из таких возможностей и является роутер. Он позволяет с помощью несложных правил настроить внутреннюю адресацию сайта по своему вкусу.
Любой запрос браузера передается роутеру, а уже потом – контроллеру. Таким образом, можно изменить любой из параметров запроса. Например, перенаправить запрос другому контроллеру или добавить/удалить параметры.
Делается это достаточно просто. В файле /application/config/routes.php нужно задать правила в виде:
$route[‘выражение’] = "новый_адрес";
выражение – здесь можно использовать регулярные выражения, которые будут использоваться для проверки того, нужно ли применить данное правило к полученному адресу или нет.
Теперь переходим к нашей задаче.
Читать дальше »
Опубликовано в CodeIgniter, PHP | Комментарии (13) »
PHP framework CodeIgniter. Авторизация посетителей и ограничение доступа

С вопросами безопасности web ресурсов постоянно сталкивается каждый разработчик. И, естественно, в этой области существует масса решений. В этой статье я хочу рассказать о встроенных возможностях фрэймворка CodeIgniter, которые можно использовать для авторизации посетителей и ограничения их доступа.
Прежде всего, вкратце обрисую сложившуюся ситуацию.
Большинство web ресурсов используют для защиты пару «имя - пароль». Это не самый безопасный вариант, но зато удобный (простой) в использовании.
Более сложные методы защиты требуют от посетителя либо специальных знаний, либо покупки оборудования, либо того и другого. Например, служба WebMoney использует сертификаты для авторизации пользователей. Метод хороший, но инструкция по использованию и безопасной работе с этими сертификатами занимает несколько страниц. Обычный пользователь интернета не станет связываться с такой системой без достаточно веской причины (в случае WebMoney речь идет о его собственных деньгах).
Об аппаратной защите (вроде биометрических датчиков и т.п.) и говорить не приходиться. Эти устройства стоят денег и, зачастую, немаленьких.
Поэтому, метод авторизации с помощью имени и пароля, похоже, останется самым распространенным в обозримом будущем.
В «классическом» варианте этот метод работает так. Посетитель вводит имя и пароль, вы их проверяете и, если все в порядке, записываете какой-нибудь параметр в сессию (например, имя пользователя). После этого, в каждую защищенную страницу сайта нужно добавить код, который будет проверять, установлен ли нужный параметр в сессии, и если нет, предлагать посетителю ввести имя и пароль.
Естественно, этот подход далеко не самый лучший, т.к. код проверки формы будет дублироваться на каждой странице.
Читать дальше »
Опубликовано в CodeIgniter, PHP | Комментарии (24) »




