За месяц Ноябрь, 2010

Произошла ошибка при установке устройства отказано в доступе

При попытке установить принтер (аналогичная ситуация может произойти с любым устройством - сканером, видеокартой..) на компьютер с ОС Windows XP (SP2?) уже на последнем шаге установки драйверов (все нужные файлы скопированы в системный каталог), вдруг компьютер выдает сообщение об ошибке:

Произошла ошибка при установке устройства. Отказано в доступе

Первая мысль - не хватает прав.. однако, установка драйверов производится под учётной записью администратора. Администратор “реальный”, работающий, действующий.. Значит всё не так просто.

Да.. ещё. Если установка производится от имени другого пользователя (меню “Запуск от имени”), возможно, имеет смысл выполнить полноценный вход в систему под администратором.

Device setup error. Access is denied

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

Ограничения на разделы реестра могут устанавливаться программами (в обсуждениях “мелькал” Comodo Antivirus и AVG), причем так, что у администратора не будет хватать прав на их изменение. Любая установка устройств должна выполняться с правами администратора, однако после установки ограничений любому администратору в доступе будет отказано. Таким образом, когда установка подходит к моменту изменения ключей реестра, она завершается с ошибкой доступа.

Что делать, если произошла ошибка при установке - отказано в доступе?

Вариант первый самый простой (и, скорее всего, он не сработает) - перезагрузить компьютер; перезагрузить в безопасном режиме - если файлы заблокированы работающей программой, то после перезагрузки в безопасном режиме есть вероятность их “разблокировки”.

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

Вариант третий - используем утилиту “от производителя” - Microsoft Fix It. Программа имеет дружелюбный интерфейс, лицензионное соглашение. Однако, во время работы следует набраться терпения - может показаться, что она зависла. Скорее всего, дело в большом количестве файлов, которым нужно изменить доступ.

Четвертый вариант (похож на третий в “полуавтоматическом” режиме) при помощи утилиты subinacl.exe
http://support.microsoft.com/kb/949377/en-us/#letmefixit - довольно подробная инструкция на английском языке

В моём случае вполне успешно сработала утилита Microsoft - весь доступ был восстановлен примерно минут за двадцать.

Опубликовано Ноябрь 26, 2010 | автор: levik  |  Комментарии (6) »

Nokia PC Internet Access не видит телефон

Программа Nokia pc Internet Access не обнаружила мобильных устройств Nokia, хотя как CD-ROM телефон был определён. Как раз с этого CD-ROM телефона и была запущена программа Nokia PC Internet Access

Поддерживаемые устройства

* Nokia E52
* Nokia E66
* Nokia E72
* Nokia E75

Nokia PC Internet Access совместимо со следующими компьютерными операционными системами:

* Windows XP 32 с пакетом обновления 2;
* Windows XP 64 с пакетом обновления 2;
* Windows Vista 32;
* Windows Vista 6.

Совместимость с Windows 7 не заявлена, видимо, поэтому и не запускается. Самый простой способ - установить Nokia PC Suite или Nokia Ovi Suite. После установки любой из программ, которая поддерживает телефон и операционную систему, Nokia PC Internet Access уже определяет телефон. Хотя, пользоваться интернетом можно и без неё - в указанных программах имеется всё необходимое для подключения к интернету телефонов Nokia.

Удачи!

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

OSCommerce отображает не все товары на главной странице

Столкнулся с тем, что OSCommerce отображает не все товары на главной странице, несмотря на то, что “в корень” они скопированы. Методом научного тыка довольно быстро удалось выяснить, что не отображаются товары с “пустым” (т.е. незаполненным) производителем.

Когда нашел - вспомнил, что и раньше сталкивался с проблемой отображения товаров на главной. При необходимости устраняется исправлением SQL запроса (INNER JOIN на LEFT JOIN).

ps. Версия Oscommerce не из последних…

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

Сохраняем позицию иконок-ярлычков на рабочем столе

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

Конечно, расстановка ярлыков может занимать не так уж много времени, но не уверен, что часто повторять её захочется всем. Возможно ли её “автоматизировать”?

Итак, программы для сохранения позиции ярлыков на рабочем столе

Frozen Icons

Первая версия программы вышла для сохранения и восстановления ярлычков ещё на Windows 95. На Windows XP она также работает. Последние версии (видел 2.21)  программы shareware (однако, цена довольно приемлемая - всего 1$). Желающие сэкономить могут поставить версию 1.5 - на XP sp3 работает :)

Icon Positions

Программа всего с тремя кнопками (ан нет, ещё четвертая есть - “красный крестик” для закрытия окна). “Сохранить позицию иконок”, “Обновить кэш иконок” и “Расставить иконки по местам”. Названия интуитивно понятные.. Работа программы на 64-битных системах не проверялась, однако есть предположения, что работать не будет. Следите за обновлениями.

Icon Restore

Icon Restore добавляет в контекстное меню проводника два пункта. Как несложно догадаться - один из них “Сохранить расположение ярлыков”, второй - “Восстановить расположение ярлыков”, несмотря на то, что названия пунктов меню на английском языке. :)

Desktop Icon Position Saver 64-bit

Программа, которая поддерживает 64-битные системы семейства Windows. Аналогично - для восстановления расположения ярлыков на рабочем столе следует войти в контекстное меню (щелчок правой кнопкой мыши на свободной области рабочего стола), и выбрать нужный пункт меню - сохранить/восстановить.

Сохраняйте расположение ярлыков на рабочем столе. Если они собьются - сможете быстро их восстановить!

http://dineradmin.wordpress.com/2010/07/06/%D1%80%D0%B0%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%8F%D1%80%D0%BB%D1%8B%D0%BA%D0%BE%D0%B2-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%BC-%D1%81%D1%82%D0%BE%D0%BB%D0%B5/

http://forum.ru-board.com/topic.cgi?forum=62&topic=11898

http://winfaq.info/kak-zakrepit-yarlyki-na-rabochem-stole-v-vista-i-xp

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

Авторизация в Codeigniter - Erkana, DX Auth, Ion Auth

Несмотря на довольно почтенный возраст фреймворка Codeigniter, такая опция как авторизация-аутентификация “из коробки” не предоставляется. Кроме того, нет и официального рекомендуемого варианта-плагина-модуля-хука…

erkana http://www.michaelwales.com/2010/02/protecting-controllers-with-erkanaauth/

dxauth

reduxauth http://code.google.com/p/reduxauth/

ci_im_auth - http://www.blog.26info.ru/avtorizaciya-polzovatelej-v-codeigniter/

Из комментариев:

Erkana - вещь неплохая, правда очень сильно напоминает рапидовский Auth класс - не знаю как у них там и что но попахивает плагиатом. Сейчас в основном использую Zend_acl и Zend_Auth чего и вам советую

Использование zend ACL в CodeIgniter:
http://www.simplecoding.org/user-authorization.html
http://blog.kron0s.com/adding-zend-acl-to-codeigniter
http://mihailt.wordpress.com/2008/02/11/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-zend_acl-%D0%B4%D0%BB%D1%8F-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0/

http://mihailt.wordpress.com/2008/02/17/auth-codeigniter-ci-ext/ - авторизация CI + ExtJS

upd: неплохая документация на русском языке по библиотекам авторизации:
http://dev-mark.blogspot.com/search/label/Ion%20Auth
http://dev-mark.blogspot.com/search/label/DX%20Auth

upd2 Вышел Codeigniter 2.0 - авторизация в новой версии CI предусмотрена “из коробки”.
http://blog.termit.name/reliz-codeigniter-2-0-plakat-ili-smeyatsya/

Опубликовано Ноябрь 16, 2010 | автор: levik  |  Комментарий (1) »

Ошибка при попытке открытия файла - при открытии DOCX файла в WORD 2007

Ошибка при попытке открытия файла” - сообщение от WORD 2007 при попытке открыть файл формата WORD 2007 (docx). Дополнительно можно прочитать что-то про разрешения, доступ, форматы-конвертеры…

Ошибка Word при попытке открытия файла.
Попробуйте выполнить следующие действия.
* Проверьте разрешения на доступ к документу и диску.
* Проверьте, достаточно ли памяти и места на диске.
* Откройте файл с помощью конвертера резервных копий.
{имя файла}

Довольно велика вероятность того, что основная причина - сохранение файла в формате автовосстановленного документа (.asd). Следует изменить разрешение документа на .asd и открыть его в WORD. Возможно, потребуется сохранение документа в каталоге автовосстановленных документов - запускаем WORD, нажимаем кнопку “Офис”, далее - “Параметры Word”, на вкладке “сохранение” смотрим каталог для автосохранения.

Как ни странно, на соседнем компьютере с 2007 word файл docx-asd нормально открылся.

upd. официальная ссылка
http://support.microsoft.com/kb/942617/ru

Опубликовано Ноябрь 13, 2010 | автор: levik  |  Комментарии (4) »

oscommerce - массовое удаление заказов.

Информация о заказах в OsCommerce хранится в нескольких таблицах (все они начинаются с oders…)

Для быстрого массового удаления информации о заказах можно использовать SQL-скрипт: Читать целиком »

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

Вывести в Ubercart описание категорий в каталоге

Для вывода описания категории в каталоге на странице категории следует настроить вид (View) Taxonomy Term. Для вывода описания категории после каталога сделал следующее:

В настройках вида (Taxonomy Term), который используется для магазина Ubercart выбираем раздел Footer (Подвал php код) и вводим следующее:

$category = taxonomy_get_term(arg(2));
echo "{$category->description}";

Всё.. После этого при редактировании Taxonomy Term в поле Description следует вводить соответствующее описание категории.

Да.. Редактирование SEO-заголовков (и Meta-тэги) и описания категорий искать в Содержание - Таксономия - Список (а не на странице категории). А вот вид (View), если повезет, можно изменить непосредственно на странице категории (если в меню появляются ссылки “Изменить Экспорт Clone”)

Опубликовано Ноябрь 8, 2010 | автор: levik  |  Комментарии (2) »

Уязвимость в proftpd 1.3.3

В proftpd серьезная уязвимость, которая позволяет злоумышленнику получить доступ к серверу.

http://bugs.proftpd.org/show_bug.cgi?id=3521

Основные симптомы взлома сервера - поломка аутентификации по протоколу FTP и наличие шелла и пароля у пользователя daemon:

# cat /etc/passwd|grep daemon|grep bash
daemon:x:2:2:daemon:/sbin:/
bin/bash # cat /etc/shadow|grep daemon
daemon:$1$djV0Rg35$cpozBFMf6oMRa2cY4Perh0:14352:0:99999:7:::

Эта уязвимость позволяет злоумышленнику выполнить произвольный код через proftpd. Аутентификация не требуется! Если совсем кратко, то при переполнении буфера есть возможность выполнить произвольный код в контексте proftpd процесса.

Проверка исходников показала, что эта уязвимость присутствует с ProFTPD-1.3.2rc3. Уязвимость была непреднамеренно добавлена при исправлении бага # 3131.

В качестве временных мер (пока не залатают), можно изменить номер порта и задать произвольный размер буфера в proftpd.conf - что-то вроде:
CommandBufferSize 1237

upd Новая версия с залатанной дыркой. Всем, у кого установлен ProFTPD версий 1.3.2 - 1.3.3 - рекомендуется обновиться. (У кого версия ниже - тем более :) )

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

Сортировка массивов в PHP

В PHP есть несколько функций для сортировки массивов. Практически на все случаи жизни :)

sort - сортирует массив. После завершения работы функции элементы массива будут расположены в порядке возрастания.

arsort - сортирует массив в обратном порядке таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассаоциативных массивов, когда важно сохранить отношение ключ => значение

asort -  сортирует массив таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение

ksort - cортирует массив по ключам, сохраняя отношения между ключами и значениями. Функция полезна, в основном, для работы с ассоциативными массивами

natsort - реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется “natural ordering”. (img2<img10)

natcasesort - регистронезависимый natsort

rsort - сортирует массив в обратном порядке (от большего к меньшему)

usort - сортирует массив по значениям используя пользовательскую функцию для сравнения элементов (для любителей эксклюзива)

uksort - сортирует массив по ключам, используя для сравнения его ключей функцию, определённую пользователем. Если массив должен быть отсортирован по какому-либо необычному признаку, вы должны использовать эту функцию.

array_multisort - может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями. Эта функция сохраняет соответствие между ключами и соответствующими им значениями.
Однако, для случая, когда нужно отсортировать многомерный массив “по строкам” можно использовать следующую функцию:


function array_orderby()
{
$args = func_get_args();
$data = array_shift($args);
foreach ($args as $n => $field) {
if (is_string($field)) {
$tmp = array();
foreach ($data as $key => $row)
$tmp[$key] = $row[$field];
$args[$n] = $tmp;
}
}
$args[] = &$data;
call_user_func_array('array_multisort', $args);
return array_pop($args);
}
?>
The sorted array is now in the return value of the function instead of being passed by reference.
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// Pass the array, followed by the column names and sort flags
$sorted = array_orderby($data, 'volume', SORT_DESC, 'edition', SORT_ASC);
?>

Для сортировки по “рядам” такой метод как раз сгодится.

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