Архив Категории: Программирование

Программирование на различных языках

Переводим CodeIgniter на PHP 5.3

Доброго времени суток.

Возникла задача переноса сайтов с сервера с PHP 5.2 на сервер с PHP 5.3. Гладкого перехода и не ожидалось, тем более что во многих статьях об этом писалось. Вот с чего следует начать… читать далее »

Unable to open logs: в чем подвох?

Доброго времени суток.

Случилось так, что мне неожиданно понадобилось установить xDebug. Для этого я его скачал, все сделал как надо. Речь вообще не о нем :) читать далее »

Установка Java на Debian

Доброго времени суток.

Возникла необходимость установить Java на Debain. Нашел в сети эту ссылку. Все оказалось просто. Но вместе с этим возникла проблема — нет Java в стандартных (main) репозиториях.

Оказало все просто. Java содержится исключительно в репозиториях типа non-free. Добавить надо в /etc/apt/sources.list строчку такую простую:

deb http://ftp.ru.debian.org/debian/ squeeze non-free

После этого Java ставиться замечательно.

Вот и все.

UMI.CMS vs Kaspersky: мозг WIN

Доброго времени суток.

Ранее в статье UMI.CMS vs Kaspersky: кто круче? я писал о том, что UMI.CMS и Kaspersky не подружились на наших компьютерах из-за баннеров.

Не долго думая, было найдено простое решение это проблемы. читать далее »

PHP

RE: PHP: фрактал плохого дизайна

Доброго времени суток.

Набрел на эту статью вчера, прочитал осмыслил и понял, что, являясь, вроде как, программистом PHP, согласен с автором в 80% его «каменей в огород» PHP.

Автор пишет многобукав, порой перегибает палку, но этот жизненный опус стоит того, чтобы его полностью прочитать.

Я имею опыт программирования на других языках и  могу с ним во многом согласиться. Самый большие камни на мой взгляд — это слабая типизированность PHP, которая в последующих версиях сойдет на нет, я надеюсь, и, мягко говоря, забавное поведение оператора ==. В остальном либо я не придал значение, либо на мой взгляд не является такой сильно большой проблемой для этого языка.

Всем желаю чистого кода :)

Установка MySQL на FreeBSD

Доброго времени суток.

Вот и познакомился я с FreeBSD :)  Знакомство началось с необходимости установки MySQL на рабочий сервер, где PHP  был собран без модуля MySQL, потому что он там собственно и не нужен был. Установка была произведена следующей коммандой:

cd /usr/ports/databases/mysql51-server
make && make install

У меня ставилось около часа, а то и больше, непривычно по сравнению с Linux, где ставится сразу пакет, а тут собирается из исходников. Сразу же ставится зависимый клиент для сервера. После установки надо добавить в /etc/rc.conf строку:

mysql_enable="YES"

Ну вроде установилось. Но пароль не спросила при установке. Оказалось пускает и так, без него… Интересно. Значит надо править таблицу пользователей. Запускаем MySQL и начинаем править:

$ mysql
USE mysql; // выбрали базу
DELETE FROM user WHERE User=''; // удалили пользователей типа гость
UPDATE user SET Password = PASSWORD('тут_новый_пароль');
                   //установили пароль для оставшегося пользователя (root)
FLUSH privileges; //обновили привелегии

После этого удаляться все пользователи с пустым именем, и появиться пароль у пользователя root. Далее можно либо обновить привилегии, либо тупо ребутнуть службу MySQL. Вуаля! У меня есть рабочий мускул, в который можно попасть только по паролю. Все как надо:)

А вот когда подключил mysql.so, тогда оказалось что PHP собран без требуемого модуля. Исправилось следующим путем:

cd /usr/ports/databases/php5-mysql
make install

После этих махинаций перезапускаем Apache и радуемся, что у нас все работает:)

Вроде как все. если нашли ошибки или неточности — пишите обязательно:)

Datepicker: цепляем к SPAN и ему подобным

Доброго времени суток.

Возникла необходимость прицепить datepicker к элементу, отличному от input.

Решил проблему следующим образом: повесил обработчик click на элемент, в котором надо менять дату, и обработчик change на элемент input, которому быдует вызываться datepicker. Воспользовался тем, что datepicker вызывается событием onFocus.

Вот собственно сам код.

<span id="datepickerSpan">01.01.1970</span><input id = "datepicker" hidden/>

Код JS тоже простой:

$("#datepickerSpan").click(function () {
    $("#datepicker").focus();
});

$("#datepicker").change(function () {
    $("#datepickerSpan").html($("#datepicker").val());
});

А тут пример как работает. Надеюсь кому-нибудь пригодится :)

Как побороть ошибку «Обнаружено потенциально опасное значение Request.Form»

Доброго времени суток.

Работая с ASP.NET MVC столкнулся с ошибкой «Обнаружено потенциально опасное значение Request.Form». В сети много всего написано по поводу изменения настроек Web.Config и всего в этом духе. Предлагают вписать следующее в <system.web>:

<httpRuntime requestValidationMode="2.0" />
<pages validateRequest="false" >

Но это не помогает. А действительно пилюля для меня выглядела так:

[ValidateInput(false)]

Это надо добавить либо перед контроллером, либо перед функцией, которая принимает этот «вредоносный» код. Ну желательно после этого внедрить свою проверку, потому что это будет откровенная дырка в безопасноти.

Вот собственно и все.

ASP.NET MVC: преобразование JSON в объект C#

Доброго времени суток.

Столкнулся в необходимостью получить преобразование JSON в объект C#. Долго рылся в интернете в поисках решения и, наконец, из всего многообразия информации собрал следующий способ. читать далее »

UMI.CMS Start может больше

UMI.CMSДоброго времени суток.

Есть у меня один сайт на UMI.CMS. Использую бесплатную версию. В целом все устраивает, но возникла необходимость написать свой модуль, ну или хотя бы его подобие модуля. Мне в частности понадобился WHOIS. Решил попробовать прикрутить его как модуль системы. Но, как и говорится в описании, модули писать свои нельзя с этой версией — при добавлении этого модуля в систему ничего не происходило, он не регистрировался. А для использования его внутри текста страницы он должен быть зарегистрирован в системе, система должна знать про его существование и пути до исполняемых файлов.

НО… Часть модуля — статическая форма, которая находится на каждой странице. Я ее, конечно, разместил в шаблоне страниц и … О чудо! Она отобразилась!

Можно сделать следующие выводы: модуль работает, но его содержимое выводится только в шаблон. Значит можно просто сделать для страницы данного модуля свой шаблон и поместить вместо %content% нужный шаблон. Парсинг его прочитает и выполнит. Проверено :)

На основе этого, на мой взгляд, не сложно сделать, например, свой модуль каталога или модуль фото-галереи, используя возможности .htaccess.

В одной из следующих статей  я расскажу, как сделать так, чтобы в бесплатной версии UMI.CMS можно было нормально регистрировать модули. Эта фича была замечена мною позже и еще не изучена. В общих чертах — я просто поверх своей бесплатной версии накатил код платной версии. Это очень «в общих чертах». Но это уже совсем другая история…

Яндекс.Метрика