| « Поставить закладку » « Сделать стартовой » | |||
|
|||
| Статьи:: Интернет технологии :: PHP :: Триада PHP & MySQL & gd library Сервис счетчиков обращений
Триада PHP & MySQL & gd library Сервис счетчиков обращенийТриада PHP & MySQL & gd library Сервис счетчиков обращенийPhp - (Hypertext Preprocessor) - платформо-независимый
язык для динамического наполнения WEB-сайта. Тем неменее, он позволяет
динамически генерировать не только HTML-документы, но и графические изображения
в формате gif. В статье рассмотрены вопросы обработки параметров get-запроса,
доступа к базе MySQL и генерации gif-рисунков на практическом примере. Когда у вас будет свой сайт вы безусловно захотите вести
статистику посещений. Если вы предоставляете место и траффик для бесплатного
размешения страниц и хотите предоставить каждому пользователю неограниченное
количество счетчиков, но без права исполнения скриптов, то эта статья для Вас. Как это работает? Web-мастер помещает на свою страницу ссылку на рисунок. Но не gif или jpeg, а на этот php скрипт. Положим, ссылка на счетчик страницы 'Об авторе', расположенной на моем сайте будет выглядеть так: <img src="/scripts/counter.php3?SiteID=Vlad&PageID=About"> Здесь SiteID и PageID - так называемые get-параметры, а Vlad и About - их значения. Эти get-параметры идентифицируют счетчик. Скрипт найдет соответсвующую запись в базе, увеличит значение счетчика на еденицу и построит рисунок. Мы еще не представляем как будет выглядеть все остальное но уже можем обработать get-параметры $locSiteID = $HTTP_GET_VARS["SiteID"]; Здесь следует остановиться на важном моменте. Дело в том, что по правилам php имена переменных и get-параметров чувствительны к регистру. Это значит, что если человек напишет ссылку и get-параметры прописными буквами, то наш скрипт не сможет распознать такой запрос. Поэтому я предлагаю не такой изящный, но очень надежный способ интерпреции get-параметров. Состоит он вот в чем: последоватьным перебором всех get-параметров попытаемся найти интересующие нас SiteID и PageID. Причем при поиске используем нечувствительное к регистру сравнение строк: $locSiteID = "_"; Здесь префикс "_" необходим для MySQL-движка. Далее установим базу счетчиков Counters mysqladmin create Counters и создадим в ней таблицу Counters. Таблица как вы наверно уже догадались, состоит из трех полей: SiteID, PageID, CountValue: Create Table Counters ( Обратите внимание на индекс CounterIndex. Поля, входящие
в индекс, должны иметь атрибут NOT NULL, размер ключей (читай полей, входящих в
индекс) не должен превышать 256 символов. И последнее - порядок полей в индексе
должен совпадать с порядком в секции Where SQL запроса. Если же Вы планируете
небольшую базу и колчество записей невелико, то индекс можно и не создавать. Для работы с базой нам потребуется всего три запроса: · Создать новую запись в базе при первом
обращении к счетчику: Insert Into Counters (SiteID,PageID,CountValue)
Values ('$locSiteID','$locPageID',1) · Найти значение счетчика: select * from counters where SiteID='$locSiteID'
AND PageID='$locPageID' · Увеличить значение счетчика на еденицу: Update Counters Set CountValue =
CountValue+1 Where SiteID = '$locSiteID' AND PageID = '$locPageID' [an error occurred while processing this directive] А теперь самое время вспомнить про префикс "_" значений
get-параметров. На самом деле все очень просто. Посмотрите на структуру таблицы.
Поля SiteID, PageID помечены аттрибутом NOT NULL, и префикс "_" позволяет
пропустить один или даже оба параметра в get-запросе: //Нечувствительные к
регистру get-параметры Преобразовываем число в строку и форматируем в
шестизначное число. $strCounterValue = sprintf("%d",$locCountValue); Далее показано как пользоваться gd library в php для
динамического рисования счетчика. Строго говоря, это не самый иллюстративный
пример. Шрифты, входящие в библиотеку gd library могут различаться по
дистрибутивам, поэтому для этого проекта я использовал спецальный формат
представления шрифта и процедуру его отображения. Тем неменее код достаточно
документирован и, я надеюсь, поможет вам сделать очередной шаг. Header("Content-type: image/gif"); Рубрика: PHP
Google Developer Day 2008 в Москве.
Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва, Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API от Google, чтобы создавать социальные, мобильные и картографические приложения, как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое другое из первых уст.
Подробнее... |
Рубрика: Мероприятия
| Добавлено: 05.09.2008
ТОП 10 самых раздражающих факторов для программиста.
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…
Подробнее... |
Рубрика: Разное
| Добавлено: 03.09.2008
Windows Server 7, 8 и 9.
Подробнее... |
Рубрика: Windows Server 2003
| Добавлено: 03.09.2008
Остальные статьи:
jQuery для JavaScript-программистов
Инновационный веб-броузер Google Chrome стартует уже сегодня
Windows 7: подход к производительности системы
Trac + Subversion @ Ubuntu: Revisited
[g]Vim в режиме Python: Рекомпиляция в Windows
Java + JSON. Пути к дружбе
Драйвер SQL Server 2005 для PHP
Типы данных в MySQL (сжатый справочник для PHP программиста)
PHP класс для работы с Яндекс.XML
Ошибки начинающих PHP разработчиков
Наследование шаблонов в Smarty
Особенности хранения сессий PHP в memcached
Internet Explorer 8 beta 2
9 правил для начинающего Ajax-разработчика
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения
Windows 7: под покровом тайны |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|