<rmcreative>

RSS
  1. Спаммерам - бан!

    24 июля 2006

    Спаммеры уже достали своей "виагрой" в гостевой! Не выдержал и написал простелький фильтрик для отсавляющих сообщения.

    if (!in_array(gethostbyaddr($_SERVER['REMOTE_ADDR']), $banned)){
        //добавляем сообщение
    }
    else{
        //отсылаем спаммера :)
    }
    1 комментарий
  2. Quake2 Evolved 1.0 Beta

    20 июля 2006

    Обновился замечательный движок для Quake2. На сайте об этом ни слова, хотя на форумах жизнь бурлит...

    Наконец-то я сподвиг народ собрать все необходимые для запуска ссылки в одном месте. Качаем и наслаждаемся.

    Комментировать
  3. И как я мог такое пропустить?

    17 июля 2006

    Сегодня забрёл на сайт, целиком посвящённый регулярным выражениям. И как я мог не найти его раньше?!

    Особенно заслуживают внимания статья «Полосатая таблица».

    p.s. Кстати, единственная и неповторимая книга по регуляркам — это:

    http://www.ozon.ru/multimedia/books_covers/1000047517.jpg

    Дж. Фридл. Регулярные выражения. Второе издание

    CПб: Питер, 2003, 464 с.

    Must have!

    Комментировать
  4. Обновление класса для работы с INI

    14 июля 2006

    Обновлён класс для работы с INI-файлами.

    Добавлен вывод предупреждений об отсутствии переменных и секций при их чтении.

    Комментировать
  5. Включено GZip-сжатие

    13 июля 2006

    Сегодня включил на сервере GZip-сжатие страничек. Будем экономить трафик и время загрузки.

    p.s. данная возможность есть у многих хостеров. При этом экономия примерно такая же, как от сжатия в zip, т.е. около 70%!

    Все современные браузеры, включая Internet Explorer замечательно реагируют на сжатые странички.

    Для активации данной возможности создаём в корне сайта файл .htaccess(если его ещё нет) и дописываем в него следующую строчку:

    php_flag zlib.output_compression On
    
    5 комментариев
  6. Стеганография средствами Apache и PHP

    12 июля 2006

    Из Википедии:

    Стеганография — в переводе с греческого дословно означает «тайнопись». Это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование.

    Что сделает злоумышленник, который не найдёт на сайте ни одного скрипта? Кроме как сдаться ничего и не останется...

    Итак, как же это всё реализовать?

    Первое, что нам понадобится - обработчик ошибок. Напишем его на php.

    //Файл error.php
     
      //Посылаем правильный заголовок
      header('HTTP/1.0 404 Not Found');
      //Выводим информацию для пользователя
      print('Ошибка, страница не найдена.');

    В htaccess добавим:

    [apache]
    
      ErrorDocument 404 error.php
    
    

    Теперь добавляем ко всем нашим скриптам входной get параметр mode и если он не указан или неправильно указан - запускаем наш обработчик ошибок для выдачи ошибки 404. Если же всё указано правильно - выполняем скрипт.

    //Файл index.php
     
    //Если передан параметр и подходящее значение
    if(isset($_GET['mode']) && $_GET['mode']=='display'){
        //Выполняем скрипт
        print('Результат работы скрипта');
    }
    else{
        //Иначе прикидываемся отсутствующим
        include('error.php');
    }

    Таким образом, если в адресной строке наберём

    http://www.oursite.ru/index.php
    

    получим ошибку об отсутствии такого файла на сервере.

    Для обращения к скрипту используем

    http://www.oursite.ru/index.php?mode=display
    

    Далее делаем красивые, но неудобные для злоумышленника URL, как описано в моей статье "Красивые адреса на сайте".

    Если вкратце, это делается это путём вписывания в htaccess

    [apache]
    
    RewriteEngine On 
    RewriteRule display/? index.php?mode=display
    
    

    Теперь наш скрипт доступен как

    http://www.oursite.ru/display/
    

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

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

    Делается это так:

    [apache]
    
    RewriteEngine On 
    RewriteRule config/?.* error.php
    RewriteRule password.txt error.php
    
    

    Вот в принципе и всё. Надеюсь, статья поможет вам в защите ваших сайтов.

    p.s. используйте стеганографию, но не забывайте и о защите.

    1 комментарий
  7. PHP Developer's Journal

    11 июля 2006

    Сегодня забрёл на интересный ресурс по php - PHP Developer's Journal.

    Да, и в жж бывают нормальные люди...

    Комментировать
  8. English Pages

    30 июня 2006

    Как вы могли заметить, в меню появилась новая кнопочка "English Pages". На английский переведена статья о создании красивых адресов на сайте.

    Комментировать
  9. Чем редактировать php-код?

    30 июня 2006

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

    Для php сред разработки, как оказалось, написано довольно много (особенно если включить в их список "продвинутые блокноты"). И как у всех продуктов у многих из них имеется огромная куча недостатков. Итак, что же выбрать?

    Как и многие другие программисты, я сначала боялся навороченных IDE, поэтому присматривался только к блокнотам с подсветкой кода. Для маленьких проектов больше и не надо было.

    Так однажды я наткнулся на PSPad - "продвинутый блокнот", который до сих пор используется мной, когда надо что-то быстро подправить или нет под рукой более подходящего инструмента. На PSPad я сидел очень долго. Не знаю уж, чем он мне приглянулся... вроде нет некоторых возможностей как в scite или notepad++, работает тоже не сказать, чтобы быстрее. Но что-то всё-таки в нём есть.

    Из основных его плюсов стоит отметить: мультитабность, настраиваемую подсветку всего, чего только душа пожелает, инспектор кода, дополнение функций php. Из минусов... отсутствие Code Folding. Конечно, можно и ещё минусов отыскать, но это же всё-таки не IDE, так что не будем ;)

    В принципе можно было и дальше писать код в PSPad. Но после того, как поработал с Java в удобных IDE JDeveloper и Eclipse захотелось того же для php, а именно нормального автодополнения, возможности отладки и проверки кода на лету.

    Всё это нашлось в самой полной и продвинутой среде Zend ZDE.

    Правда, просидел я на ней совсем недолго. Доставала скорость её работы. Тормозила не на шутку. И это на Athlon 2000+ c 512 DDR оперативной памяти... ужас, в общем.

    Конечно, есть у данной среды и неоспоримые преимущества. Она полностью направлена на разработку php приложений и имеет, пожалуй, самый полный и продуманный механизм автодополнения, отладчик и проверку кода на лету.

    Но, к сожалению, тормознутость и коммерционализированность не дают как следует всем этим насладится.

    Через неделю сменяющих друг-друга восхищения возможностями и негодования по поводу тормозов, ZDE был снесён. Вернулся к PSPadу. Радовался отсутствию тормозов, но тайно мечтал об автодополнении и проверке на лету.

    И тут произошло чудо. Как-то работая с Java в Eclipse я заглянул в настройки и увидел список подключенных плагинов. Ага... есть поддержка плагинов... а нет ли плагина под php? Полез в google и... нашел!

    Со скептическим настроением выкачав плагин установил как написано в readme, перезапустил Eclipse и офигел...

    По возможностям может потягаться с ZDE, была моя первая мысль. После дня работы я был полностью убеждён, что плагин лучше ZDE.

    /images/phpeditors/phpeclipse_thm.gif

    Первое и самое огромное преимущество PHPEclipse (да-да, именно так он и называется) - всё довольно быстро работает. Дискомфорта никакого.

    Второе, что бросилось в глаза - приятные цвета и шрифты, да плюс ещё хорошая подсветка синтаксиса. Так как я работаю с Smarty, то ещё очень порадовала подсветка его шаблонов.

    Как и в основном Eclipse для Java в PHPEclipse имеется Code Folding (сворачивание блока кода в одну строчку... чтобы не мешался). Мелочь, а приятно.

    Как не странно в PHPEclipse есть и автодополнение функций php, переменных в пределах файла, автодополнение методов и полей всех подключенных классов.

    Ну, для полной картины имеется замечательная проверка на лету, автоматическая расстановка отступов, закрытие скобок, кавычек. Имеется возможность отладки.

    Прибавим сюда полную бесплатность как самого Eclipse, так и PHPEclipse и полную кроссплатформенность...

    За последние три-четыре месяца у меня полностью отпало желание даже пробовать другие среды разработки. В PHPEclipse всё удобно и хорошо. Может, конечно, есть что-то лучше, но я пока не встречал...

    Дополнение от 25 декабря 2006

    Встретил... Действительно нашёлся IDE лучше PHPEclipse... Тоже созданный на базе Eclipse, тоже бесплатный и очень похожий: PHP IDE.

    Преимущества перед PHPEclipse:

    • Меньше размер дистрибутива.

    • Более правильное и удобное дополнение кода.

    • Встроенный дебаггер от Zend.

    • Постоянное развитие проекта.

    Недостатков пока не выявлено...

    Дополнение от 27 декабря 2006

    Вот и первый недостаток: PHPIDE упорно не хочет работать с чем-либо не в кодировке utf-8. Даже если в проекте выставить cp1251, упорно старается сохранять в unicode.

    Выводы:

    Для небольших проектов вполне сгодится PSPad или другие "продвинутые блокноты". Как только дело доходит до крупных проектов - лучше перейти на PHP IDE или PHPEclipse, если не хочется работать с unicode.

    p.s. возможно кому-то поможет справится с проблемами при переходе на utf-8 статья "My SQL 4.1+ и любые проблемы с русскими буквами" .

    2 комментария
  10. Обновление класса INI

    26 июня 2006

    Сегодня был обновлён класс INI, позволяющий работать с INI-файлами. Были добавлены новые методы для более удобной работы.

    Комментировать