FeedBurner: проверьте свои фиды

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

Работая над одной идеей, связанной с RSS, заметил, что больше половины всех FeedBurner-лент блогеров работают не совсем правильно. Дело в том, что при определённой настройке FeedBurner меняет в ленте все ссылки на редиректные, находящиеся на своём сервере. Таким образом, если на каком-то аггрегаторе выводятся ссылки на ваши последние статьи, то ведут они не на ваш сайт, а на FeedBurner, с которого уже перебрасываются к вам. С точки зрения пользователя это не заметно, а с точки зрения SEO — это маленькая катастрофа, так как вес в большинстве случаев не передаётся.

Сегодня вместе с Диким мы разобрались как решить эту проблему.

Решения два:

1. Если вы только создаёте RSS-трансяляцию в FeedBurner, то на втором этапе не ставьте галочку «Clickthroughs«.

FeedBurner Fix 1

2. Если лента уже существует, то зайдите в раздел «Analize» — «Site Stats» и снимите галочку с «Item link clicks».

FeedBurner Fix 2

Это всё. Теперь все ссылки на оригинал записи в ленте и в аггрегаторах будут вести прямо на ваш блог. Что от этого теряет статистика FeedBurner? Учёт кликов по заголовкам. Но его, в общем-то, никто и не смотрит.

Как сделать облако тегов на PHP.

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

Облако тегов«Облако тегов» или «Облако меток» (англ. tag cloud) — визуальное представление списка ярлыков. Частота упоминаний, поисков, ссылок в интернете с определенного сайта неких слов, терминов, имен, отображается в виде изображения этих слов в формате гиперссылок. Размер изображения тем больше, чем выше релевантность данного слова.

Теги для многих удобнее категорий, и, наверное, поэтому без них сейчас не обходится ни один проект в концепциях Web 2.0. Для многих CMS есть модули или плагины, выводящие облако тегов. WordPress поддерживает такую функцию начиная с версии 2.3.

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

  • 1. Создал таблицу соответствий «Тег — Число».
  • 2. Заполнил её (несложная функция, подсчитывающая число вхождений тега в таблице блогов).
  • 3. Рассчитал максимальное значение и исходя из него — популярность каждого тега в процентах.
  • 4. Разделил теги на группы по популярности и назначил им CSS-классы.
  • 5. Подготовил соответствующие CSS-классы для отображения.
  • 6. Вывел облако на страницу блоком.

скачать PHP скриптTagCloud.phps - формирование облака тегов.

В тексте исходника — все инструкции, дамп таблицы и CSS-классы.

Организация общения с посетителями сайта: варианты.

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

Организация общения с посетителями сайтаДовольно интересная тема, особенно важная для интернет-магазинов, сайтов турагенств и прочих оператор-ориентированных сервисов. Стандартный подход в рунете такой: в шапке сайта указывается телефон, в подвале — е-мейл, в лучшем случае есть ICQ или форма обратной связи.

Такой подход явно не располагает посетителей к контакту: я не люблю звонить непонятно куда по телефону (да и зачем, я же в сети), ICQ — это что-то личное, да и для контакта требуется слишком длинная цепочка действий, а по почте мы все знаем, что не дождёмся ответа скорее всего никогда.

На западе решением этой проблемы было озадачено несколько компаний, разработавших всё, что можно найти в Google по запросу «Live Chat Software«, то есть программы для мгновенной связи оператора с посетителем сайта. По некоторым данным, такой механизм в хорошей реализации может увеличить конверсию и, соответственно, продажи более чем на 80% (!). Это вполне логично — задать вопрос специалисту проще, чем лазать по каталогу и легче, чем звонить, искать кого-то в ICQ или ждать ответа по e-mail.

Отсюда логически следует жизненный вопрос: как это реализовать, желательно самостоятельно и бесплатно?

Подход первый. Грамотный.
Будем писать сервис под себя. Самый удобный, открытый и подходящий для этой цели стандарт, на мой взгляд — Jabber. Берём class.jabber.php или немного его доработанный вариант PHP Jabber Client и пишем всё, что нам нужно. Для любителей Python: xmpppy.

Не нравится XMPP — можно рискнуть и заморочиться с ICQ, например на основе PHP-класса WebIcqPro или даже Java-библиотеки Joscar. Я думаю, что ICQ следует использовать только в том случае, когда нет возможности использовать Jabber, так как этот протокол не блещет стабильностью, надёжностью и предсказуемостью. Да и возможность несложного создания Jabber2ICQ гейта даёт Jabber`у дополнительное преимущество.

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

1. Hab.la. Весьма удобный сервис, основанный на Jabber. Легко настраивается, не вызывает конфликтов, легко интегрируется в любую страницу, позволяет использовать любой jabber-клиент на стороне оператора.

2. Google Talk chatback badge . Просто и со вкусом, если грамотно оформить, то вполне приемлемо. Но найден недостаток в реализации — сделано с использованием Flash (Google, ЗАЧЕМ?), что ограничивает в общении неанглоязчных пользователей не-windows. Я надеюсь, в Google исправят этот косяк.

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

  • Веб Мессенджер
  • SiteHelper.NET
  • GoTalk
  • LiveContact

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

PHP: фильтр от XSS и SQL-инъекций.

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

Защита от XSS-атак и SQL-инъекцийПредлагаю небольшое исследование на тему безопасности веб-приложений и фильтрации вводимых данных. Скорее всего, я ещё вернусь к этой теме, но сейчас больше хочется не писать трехтомник, а сохранить и упорядочить собранное и проверенное. В частности, речь пойдёт о фильтрационной защите от XSS-атак и SQL-инъекций.

В PHP есть ряд специальных функций для работы со строками, применимых для этой цели. Вот они:

strip_tags() — вырезает теги HTML и PHP из строки.

htmlspecialchars() — конвертирует только специальные символы (‘&’, ‘»‘, »’, ‘<‘ и ‘>’) в HTML сущности (‘&amp;’, ‘&quot;’…). Используется для фильтрации вводимых пользователем данных для защиты от XSS-атак.

htmlentities() — конвертирует все символы в строке (кроме букв) в мнемоники HTML. Используется для защиты от XSS, являясь более гибким аналогом htmlspecialchars.

stripslashes() — удаляет заэкранированные символы (после преобразования в сущности предыдущими функциями их незачем экранировать). Обычно используется в связке с проверочной функцией get_magic_quotes_gpc(), показывающей текущую установку конфигурации magic_quotes_gpc.

Эта конфигурация влияет на то, как будут обрабатываться специальные символы, содержащиеся в данных, передаваемых пользователем (массивы $_GET, $_POST, $_COOKIE). При magic_quotes_gpc = 1 эти спецсимволы (одиночные и двойные кавычки, обратный слэш, байт NULL) автоматически экранируются. При magic_quotes_gpc = 0 все данные передаются в таком виде, в каком их ввел пользователь. В последнем случае в целях безопасности требуется обрабатывать передаваемые данные.

mysql_real_escape_string — мнемонизирует специальные символы в строке для использования в операторе SQL с учётом текущего набора символов в кодировке соединения. Иными словами, функция превращает любую строку в правильную и безопасную для MySQL-запроса. Используется для очистки всех данных, передающихся в MySQL-запрос для защиты от SQL-инъекций.

На основе этих данных, можно собрать функцию для однозначной очистки непроверенных данных. Эта функция получает две переменные — строку с введёнными символами и булево значение для определения — требуется ли приведение к MySQL-запросу. Возвращает функция очищенную строку. Конечно, это не панацея, но функцию легко изменить под собственные нужды.

скачать PHP скриптInputClear.phps - фильтрация введённых пользователями данных.

Если кто-то обнаружит ошибки, или знает способ лучше — добро пожаловать в комментарии, мне очень интересно.

Проверка ТиЦ на PHP — ещё быстрее.

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

PHP определение ТиЦНесколько дней назад я выкладывал скрипты для определения средствами PHP показателей Яндекс ТиЦ и Google PR для сайтов (это может быть полезно при создании рейтингов, каталогов и для SEO). В комментариях Виталий спрашивал — почему скорость определения ТиЦ такая низкая (до минуты). Причина была найдена вместе с альтернативным решением.

Дело в том, что я пытался определить ТиЦ, используя данные для Яндекс.Бара, которые отдаются медленно (недостаток серверных ресурсов, скорее всего). Решение — обращаться к каталогу Яндекса, который неизбежно показывает нужное значение (хотя, говорят, иногда обновляется с небольшим опозданием).

По скорости — получилось. Всё-таки, каталог — это сайт, а сайт Яндекса должен работать быстро. Исчезли задержки по 30-50 секунд, скрипт выполняется за 0.20.3 секунды.

скачать PHP скриптCy-2.phps - получение Яндекс ТиЦ в виде числа.

Коллеги — 1000 IT-блогов.

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

Помните, в сентябре 2007-го я проводил Конкурс Конкурентов с выбором лучших IT-блогеров? С тех пор прошло уже порядком много времени, но проводить конкурс повторно я пока не хочу. А вот блогролла мне уже мало. Да и не конкуренты мы вовсе — я бы сказал, коллеги.

Скрипт ещё толком не отлажен, так что если что — пишите в комментарии. Ну и помогайте наполнять, конечно. Условия добавления блога в эту матрицу — IT-направленность и наличие постов за последние 30 дней.

WP-Cache — ускоряем загрузку блога.

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

wp-cacheКогда-то давно, около года назад, я уже пробовал поставить на блог кеширующий плагин, но тогда и WP был другой версии, из плагинов только каждый десятый работал. Но вот настал период, когда захотелось улучшить ситуацию со скоростью доступа к блогу — на VDS поселился посещаемый магазин и скорость стала пониже.

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

Я замерил начальную скорость. Результат - 3.8 сек.

После этого я установил плагин WP-Cache 2.1.12. Устанавливается он весьма просто:

  • Скачать последнюю версию.
  • Распаковать.
  • Загрузить папку wp-cache в каталог /wp-content/plugins/ на сервер.
  • Выключить в админке GZIP-сжатие (по умолчанию — выключено).
  • В файл wp-config.php добавить строчку define(‘WP_CACHE’, true); (если файл закрыт от записи).
  • Активировать плагин в панели управления и включить в настройках.

Я не стал ничего менять в настройках плагина, кроме времени кеширования (увеличил до 10800 секунд — это 3 часа).

После этого я сделал ещё один замер скорости. Результат - 0.8 сек.

Разница чувствуется даже без секундомера. Так что всем читателям — обратить внимание на увеличившуюся скорость загрузки блога, а всем блогерам — замерьте свою скорость и задумайтесь о кешировании. Помогает.

Тысяча читателей

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

Вот и свершилось — преодолен некий скорее психологический рубеж в 1000 читателей блога.

Если судить по меркам ЖЖ, то теперь я «тысячник», а если по идеям нашей ненормальной законодательной власти — то СМИ. Поздравления принимаются ))

CSS Naked Day: обнаженный интернет.

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

Вебмастера! Внимание! На 9-е апреля назначена мировая акция CSS Naked Day.

Цель: показать всю важность создания единых стандартов верстки.
Метод: отключить на 1 день CSS на своих сайтах и показать, как всё это выглядит без стилей.

Насколько я понял, эта акция проводится уже как минимум третий год, при чём в прошлом году в ней приняло участие почти 2000 сайтов, а в этом ожидается ещё больше, включая довольно серьёзные ресурсы вроде того же XHTML.com, который будет участвовать в акции.

В 2006-м году специально для этой акции был даже создан плагин для WordPress, который впрочем с новыми версиями уже не работает. Но его функциональность легко восстановить: замените объявление CSS-импорта в файле header.php в папке вашей темы на следующий код:

<?php
function is_Naked_Day() {
$use_gmt_offset = 1;
$start = date('U', mktime(0,0,0,04,09,date(Y)));
$end = date('U', mktime(24,0,0,04,09,date(Y)));
$now = time('U');
if($use_gmt_offset)
$offset = get_settings('gmt_offset')*60*60;
$start = $start + $offset;
$end = $end + $offset;
$now = $now + $offset;
if (($now >= $start) && ($now <= $end))
return true;
else return false;
}
if(is_Naked_Day()) {
echo "<!-- Сегодня CSS Naked Day -->";
} else {
echo "<link rel='stylesheet' href='".bloginfo('stylesheet_url')."' type='text/css' media='screen' />"; } ?>

9 апреля этот код отключит CSS на сайте строго по времени и с учётом вашего часового пояса. На сайтах по ссылкам можно найти варианты кода для других движков (и если копируете код — исправьте кавычки на обычные, WP их коверкает).

WordPress 2.5 — вышел!

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

WordPress 2.5 - вышел!Буквально пару часов назад обновился движок WordPress (на котором работает большинство блогов, в том числе и этот) до версии 2.5.
Первое, что бросается в глаза из изменений:

  • Полностью переделана админка.
  • Обновилась система шифрования паролей. Заботятся о безопасности.
  • Появилась возможность управления тегами без плагинов.
  • Появилось автоматическое обновление плагинов.
  • Подросли системные требования: PHP 4.3+, MySQL4.0+ (рекомендуется 4.1+ для нормальной работы с UTF-8) и >32Mb памяти для PHP.

Разработчики однозначно рекомендуют обновление, что весьма логично. Всем удачного обновления!


© 2007-2026 Блог разработчика, страница об авторе.