Если диск отформатирован в NTFS, то имеется возможность выставить права на доступ к любому файлу или папке на этом диске, или целому диску.
Однако, по умолчанию, вкладка “Безопасность” скрыта в windows XP. (в контекстном меню - вызов контекстного меню щелчком правой кнопокой мыши или клавишей “контекстное меню” - на файле/папке/диске выбираем пункт “Свойства” и ищем вкладку “Безопасность“.)
Что делать, если отсутствует вкладка “Безопасность”?
Вообще-то она есть, просто она скрыта. Нужно её показать. :). В окне проводника выбираем Сервис - Свойства папки - вкладка Вид и ищем и снимаем галочку “Использовать простой общий доступ к файлам (рекомендуется)”.
Для англоязычной Windows все аналогично - вкладка “Security” для томов в NTFS. Галочку искать тут:”Tools” - “Folder Options” - вкладка “View”, раздел “Advanced Settings” - “Use simple file sharing (Recommended)”.
UPD Работает только для Windows XP Professional; в Windows Home Edition для назначения прав доступа к файлам без использования сторонних утилит не обойтись (если ошибаюсь - поправьте.)
Опубликовано Ноябрь 10, 2007 | автор: levik | Комментарий (1) »
Показать все базы данных Mysql
SHOW DATABASES;
Создать базу данных MySQL
create database db1;
Создать пользователя mysql с правами на эту базу данных
GRANT ALL PRIVILEGES ON db1.* to user1@localhost identified by 'pass1';
shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO superuser@localhost
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO superuser"%"
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
superuser - Полноценный суперпользователь - он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass. Обратите внимание на то, что мы должны применить операторы GRANT как для superuser@localhost, так и для superuser@”%”. Если не добавить запись с localhost, запись анонимного пользователя для localhost, которая создается при помощи mysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host, и она расположена раньше в таблице user.
admin - Пользователь, который может подсоединяться с localhost без пароля; ему назначены административные привилегии RELOAD и PROCESS. Эти привилегии позволяют пользователю запускать команды mysqladmin reload, mysqladmin refresh и mysqladmin flush-*, а также mysqladmin processlist. Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив оператор GRANT).
dummy - Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение ‘N’-тип привилегии USAGE, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.
Опубликовано Ноябрь 6, 2007 | автор: levik | Без комментариев »
Практически каждому программисту приходится сталкиваться с древовидной структурой.
Дано: php + mysql.
Все элементы, которые входят в древовидную структуру хранятся в одной таблице базы данных.
Найти: способ хранения и представления древовидной структуры.
- Простейший вариант состоит в том, что все “ветки” дерева имеют дополнительное поле “идентификатор родителя”, используя который и можно построить всё дерево. Если нет необходимости строить всё дерево, а достаточно просматривать потомков следующего уровня некоторого родителя - то такой способ организации дерева, на мой взгляд, идеален. Если же требуется строить дерево целиком, то придется использовать рекурсивную процедуру - или в php или в mysql (при условии, что максимальная “глубина дерева” заранее определена, можно, конечно, обойтись одним составным, в котором одна таблица присоединяется сама к себе… Но это уже больше похоже на извращения..).
Можно, конечно, обойтись одним запросом (что-то вроде “select * from tree”, а данные разбирть уже в php примерно так:
while($row = mysql_fetch_assoc($res)){
$tree[$row['pid']][$row['id']] = $row;
}
Плюсы: простота организации данных.
Минусы: при большом количестве “веток” количество запросов возрастает…
- Nested sets или вложенные множества. Способ организации дерева, при котором дерево обходится, к примеру слева направо, и все вершины нумеруются дважды.

Плюсы: одним запросом можно выбрать всех потомков, отстоящих по дереву на заданное количество уровней, всех родителей.. да вообще много чего можно. Где-то встречал уже готовый класс для работы с ”Nested sets” - деревьями.
Опубликовано Ноябрь 1, 2007 | автор: levik | Комментарии (11) »
В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.
Сущность шаблонизатора: дизайн “размещается” в отдельных файлах. В тексте файлов-шаблонов встречаются оформленные по определенным правилам последовательности символов, вместо которых должны подставляться данные. Некоторые “продвинутые” шаблонизаторы позволяют использовать циклы, условные конструкции и вставки кода на PHP.
Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?
Попытаемся оправдать применение шаблонизатора. Читать целиком »
Опубликовано Октябрь 26, 2007 | автор: levik | Комментарий (1) »
IE 3px float bug - глюк IE 6.
<style>
#left {width: 200px;float: left; border: solid 1px #f00;}
#right {padding:0;border: solid 1px #0f0;margin: 0 20px 0 250px;}
#right p{background: #000;height: 100px;margin:0;}
</style><div id=”left”> </div>
<div id=”right”><p> </p></div>
В IE 6 появляется отступ 3 px у элемента p, который находится на уровне элемента #left, если блок “обтекается” другим блоком (у которого не задана высота) и у последнего есть дочерний блок(у которого задана высота), то этот дочерний блок будет иметь отступ в 3px от родительского блока слева. Замудрено, но похоже на правду…
Как лечить!?
1) Прописать высоту у элемента right (#right:height:1%)
2) С помощью условных комментариев задать отрицательный отступ в ie6
<!–[if lte IE 6]>
<style type=”text/css”>
#right p {margin-left:-3px;}
</style>
<![endif]–>
Опубликовано Октябрь 18, 2007 | автор: levik | Без комментариев »
Если Corel draw ругается по поводу msxml4.
Решение: после установки MSXML4 выполни regsvr32 msxml4.dll
Опубликовано Октябрь 14, 2007 | автор: levik | Без комментариев »
Ссылки вида mailto: становятся объектом поиска компаний, занимающихся массовых рассылок. Естественно, ищут они не вручную, а при помощи программ или скриптов. Чаще всего алгоритм поиска прост - ищем подстроку вида mailto:__EMAIL__ и выделяем из неё часть после двоеточия.
Способы обхода: Читать целиком »
Опубликовано Октябрь 10, 2007 | автор: levik | Комментарии (3) »
- If a method can be static, declare it static. Speed improvement is by a factor of 4.
- echo is faster than print.
- Use echo’s multiple parameters instead of string concatenation.
Читать целиком »
Опубликовано Октябрь 9, 2007 | автор: levik | Без комментариев »
При помощи mod_rewrite можно обрабатывать те или иные адреса. Возможности модуля достаточно велики - ведь используются регулярные выражения. Однако, “типовых” задач не так уж много. Итак… сборник “шпаргалок” по mod_rewrite для начинающих.
Опубликовано Октябрь 5, 2007 | автор: levik | Комментарии (4) »
Наконец-то я решился “завести” свой блог. Почему решился!? Просто я считаю, что не стоит плодить сайты, которые не принесут пользы. От этого сайта польза очевидна - он нужен… мне лично. Хотя бы для того, чтобы собирать нужную мне информацию. Возможно, это неправильно… Но я так решил.
Имею право.
upd. Надеюсь, информация, собранная здесь, кому-нибудь окажется полезной…
Удачи!
Опубликовано Октябрь 1, 2007 | автор: levik | Без комментариев »