barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

среда, 20 июля 2011 г.

cp1251 в php + utf8 в PostgreSQL

Проблема: БД использует кодировку UTF-8, php-страница, на которой нужно отображать данные из БД - cp1251.

Решение: в строку соединения с БД postgres добавить опцию options='--client_encoding=WIN', т.е. получится нечто вроде:

pg_connect("host=some_host port=5432 user=root password=root dbname=mydb options='--client_encoding=WIN'");

понедельник, 18 июля 2011 г.

Неперетаскивающиеся значки на рабочем столе XFCE

Проблема: значки на рабочем столе не перетаскиваются, при попытке начать двигать мышкой, зажав левую кнопку на значке, начинается выделение вместо перетаскивания.
Причина: конфликт с xneur.
Решение: добавить Xfdesktop в список не обрабатываемых (в gxneur: Настройки -> Приложения -> Не обрабатываеть эти приложения -> Добавить). Регистр в названии приложения Xfdesktop важен!

пятница, 15 июля 2011 г.

Файл настройки соединения с БД в 1С-Битрикс

Файл лежит тут (относительно директории устновки битрикса):

bitrix/php_interface/dbconn.php

В нём находятся все параметры соединения с БД, которую Битрикс использует для хранения данных. Там можно, например, посмотреть пароль от БД, если Вы его забыли или никогда и не знали ;)

Проверка открытости порта на php

Проверка открытости порта $port на компьютере с ip $ip (с таймаутом подключения $wait в секундах):

$that = @fsockopen($ip, $port, $errno, $errstr, $wait);
if($that)
     {
     echo "Порт $ip : $port открыт";
     }
else
     {
     echo "Порт $ip : $port закрыт";
     }

ping в php

Если в php не запрещен exec, то выполнить ping можно следующим образом:

exec("ping -c 1 -w 200 $db_host",$output, $status); // для Windows: -n вместо -c
if ($status==0)
     echo "Online";
else
     echo "Offline";

Кодировка POST/GET параметров в Glasshfish 2

Проблема: при передаче из формы данных на JSP-страницу русские символы превращаются в чепуху, хотя кодировки всех страниц - UTF-8. Причем это случается только при использовании в качестве контейнера Glassfish, с Tomcat 6 все нормально.

Решение: в файл sun-web.xml проекта вставить следующие строчки в блок <sun-web-app>:

<locale-charset-info>
     <locale-charset-map locale="" charset=""/>
     <parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>