За месяц Октябрь, 2012

Ошибка: uncaught exception: [CKEDITOR.editor] The instance “instance” already exists.

При попытке “прикрутить” CKeditor к ajax-страничке (повторное открытие редактора с одними и теми же значениями полей.. в галерее типа lightbox, fancybox итд) - это почти как как создать два разных FCKeditor на одной страничке, только “по очереди” получил

Ошибка: uncaught exception: [CKEDITOR.editor] The instance “instance” already exists.

Вполне понятен смысл ошибки - такой instance уже существует. Значит нужно его удалить.

<script>
if(typeof(CKEDITOR)!='undefined')
{// удаляем редактор для этого поля
if (CKEDITOR.instances['instance']) CKEDITOR.instances['instance'].destroy(true);
}
</script>

Кстати, скорее всего, похожая ситуация может возникнуть и при использовании других WYSIWYG-редакторов

Следует отметить, что при необходимости ajax-контент, подгружаемый во всплывающее окошко fancybox/lightbox можно  фильтровать при помощи функции dataFilter

Опубликовано Октябрь 31, 2012 | автор: levik  |  Нет комментариев »

Добавляется _=TIMESTAMP или подгрузка скриптов (script) ajax-ом в JQuery

При использовании ajax-запроса приходилось наблюдать ситуацию, когда вместе с текстовым контентом подгружаются и скрипты (т.е. грузится не только код вроде <div class=…></div>, но и тэги <script ..>

Всё бы ничего, но при вставке данных, к примеру функцией  .html(content) скрипты (тэг script), если они были получены ajax-ом в виде JSON (последний параметр в JQuery функциях, работающих с .ajax)  полученный с сервера результат преобразуется в библиотеке Jquery, приводя к повторной загрузке javascript. Даже если он ранее был загружен и закэширован. Читать целиком »

Опубликовано Октябрь 25, 2012 | автор: levik  |  Нет комментариев »

Putty копирование в фоновом режиме при обрыве связи

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

Однако, сложность заключалась в том, что Putty при обрыве связи выдавал ошибку и копирование прерывалось.

Естественно, при повторном соединении копирование не восстанавливалось.

В Putty нельзя настроить реконнект при обрыве связи

summary: Remember entered password for reconnecting a dead session
priority: never: We don’t ever intend to fix this.

Зато можно использовать screen. Т.е. сначала запускаем screen, затем процесс, занимающий длительное время (то же копирование файлов, например), а в случае обрыва после подключения к серверу вводим

screen -R

Посмотреть список запущенных screen можно командой (а вообще - man screen)

screen -ls

Скриптинг в Putty http://stackoverflow.com/questions/14269885/putty-scripting-to-log-onto-host

Альтернативы Putty

Форк Putty, позволяющий переподключиться при обрыве http://haanstra.eu/putty/

Putty Connection Manager (tabbed putty):

p.s. mc ftp history F9 - Left - FTP - Alt+h - история ftp соединений в Midnight Commander

Опубликовано Октябрь 20, 2012 | автор: levik  |  Нет комментариев »

linux список пользователей, кто подключен

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

Пользователи в Linux добавляются командой useradd (или, если есть более расширенный вариант, который позволяет в режиме диалога задать все настройки пользователя - adduser)

Посмотреть кто подключен к консоли  можно командой
Читать целиком »

Опубликовано Октябрь 18, 2012 | автор: levik  |  Нет комментариев »

Сложности с доставкой писем на ящики mail.ru stat=Service unavailable

Столкнулся с ситуацией, когда письма, отправленные с VPS сервера, имя которого mail.maindomain.tld не доходят до некоторых почтовых систем. Т.е. тестирую я (на ящики на частном сервере, на @gmail.com, на @yandex.ru) - письма доходят. Тестирует другой человек - письма не доходят… Мол “не работает” :) выяснилось, что письма

В логах sendmail обнаружилась куча ошибок:

mail loops back to me (MX problem?)
relay=mxs.mail.ru. [194.67.23.20], dsn=5.0.0, stat=Service unavailable

Сложность в том, что домен mail.maindomain.tld не был прописан в DNS, а почта должна была отправляться от info@maindomain.tld, но в имя отправителя попадал домен mail.maindomain.tld (несмотря на указание заголовка FROM)

Варианты решения:

- В конфиге sendmail (/etc/mail/…cf) задать верное имя основного домена, от которого должна уходить почта
define('confDOMAIN_NAME', 'maindomain.tld')

- В php.ini задать (раскомментировать и указать нужное значение) параметр (он переопределит дополнительные параметры, полученные из функции - см следующий пункт)
mail.force_extra_parameters = -finfo@maindomain.tld

- В конфиге сайта (виртуального хоста) задать sendmail_path
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@maindomain.tld"

- В php при использовании функции mail задавать последний параметр string $additional_parameters равным “-finfo@maindomain.tld” (т.е. -f и без пробела имя пользователя)

Параметр additional_parameters может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой sendmail_path. Например, можно установить отправителя письма при использовании sendmail с помощью опции -f.

Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных в конфигурации sendmail для того чтобы избежать добавления заголовка ‘X-Warning’ при указании отправителя с помощью опции (-f). Для пользователей sendmail - это файл /etc/mail/trusted-users.

- настроить sendmail, чтобы он подставлял нужного отправителя (в дебри не полез.. но про саму возможность упомянуть решил.)

Использованы материалы:
- http://www.opennet.ru/openforum/vsluhforumID1/77794.html

На некоторых хостингах требуется настройка параметра from для задания разрешённых имен отправителя при отправке писем из PHP..

Опубликовано Октябрь 15, 2012 | автор: levik  |  Нет комментариев »

php serialize, unserialize и UTF-8

Сериализация массивов/объектов в PHP - способ преобразования массива в строку для записи, например в БД или любое другое хранилище данных с возможностью дальнейшего чтения/восстановления.

При использовании примеров из мануала (т.к. они, как правило, используют символы английского алфавита), сложностей с кодировками не возникает
serialize(array(1,15.5,"blabla")); // выведет a:3:{i:0;i:1;i:1;d:15.5;i:2;s:6:"blabla";}
И
unserialize('a:3:{i:0;i:1;i:1;d:15.5;i:2;s:6:"blabla";}'); // корректно отработает
десереализация корректно отработает независимо от используемой кодировки. Читать целиком »

Опубликовано Октябрь 9, 2012 | автор: levik  |  Нет комментариев »

HostCMS ошибка: Предупреждение: simplexml_load_string() в файле /modules/Kernel/Kernel.class.php (строка 5126)

Ранним утром админка hostcms приветствует меня странной ошибкой

Предупреждение: simplexml_load_string() HostCMS ошибка в файле /modules/Kernel/Kernel.class.php (строка 5126)

Даже нет.. не ошибкой, а кучей ошибок

Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Space required after the Public Identifier в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : SystemLiteral ” or ‘ expected в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 10: parser error : Opening and ending tag mismatch: hr line 8 and body в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 10: parser error : Opening and ending tag mismatch: body line 4 and html в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: Entity: line 11: parser error : Premature end of data in tag html line 2 в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: в файле /modules/Kernel/Kernel.class.php (строка 5126)
Предупреждение: simplexml_load_string() [function.simplexml-load-string]: ^ в файле /modules/Kernel/Kernel.class.php (строка 5126)

Поскольку файл Kernel.class.php закодирован зендом. Расшифровкой Zend-файлов заниматься не стал - наверняка, это нарушение лицензии… Кстати, лицензия.. Что за странный HTML 2.0 в строке

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

Уж не за горами HTML 6.0.. а тут двоечка откуда-то?

Сайт hostcms.ru не работал, периодически подмигивая различными ошибками (403 Forbidden или Exception: Query error 1146:)

Временно решил не трогать - скорее всего дело именно в лицензии hostcms.ru

Опубликовано Октябрь 5, 2012 | автор: levik  |  Нет комментариев »