Вкладка Безопасность или как выставить права на файл в Windows

Если диск отформатирован в 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 - создать базу данных, создать пользователя (шпаргалка)

Показать все базы данных 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.
Все элементы, которые входят в древовидную структуру хранятся в одной таблице базы данных.
Найти: способ хранения и представления древовидной структуры.

  1. Простейший вариант состоит в том, что все “ветки” дерева имеют дополнительное поле “идентификатор родителя”, используя который и можно построить всё дерево. Если нет необходимости строить всё дерево, а достаточно просматривать потомков следующего уровня некоторого родителя - то такой способ организации дерева, на мой взгляд, идеален. Если же требуется строить дерево целиком, то придется использовать рекурсивную процедуру - или в php или в mysql (при условии, что максимальная “глубина  дерева” заранее определена, можно, конечно, обойтись одним составным, в котором одна таблица присоединяется сама к себе… Но это уже больше похоже на извращения..).
    Можно, конечно, обойтись одним запросом (что-то вроде “select * from tree”, а данные разбирть уже в php примерно так:
      while($row = mysql_fetch_assoc($res)){
      $tree[$row['pid']][$row['id']] = $row;
      }
    Плюсы: простота организации данных.
    Минусы: при большом количестве “веток” количество запросов возрастает…
  2. Nested sets или вложенные множества. Способ организации дерева, при котором дерево обходится, к примеру слева направо, и все вершины нумеруются дважды.
    Нумерация элементов при организации дерева методом Nested Sets
    Плюсы: одним запросом можно выбрать всех потомков, отстоящих по дереву на заданное количество уровней, всех родителей.. да вообще много чего можно. Где-то встречал уже готовый класс для работы с ”Nested sets” -  деревьями.

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

Шаблоны в php - за и против

В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.

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

Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?

Попытаемся оправдать применение шаблонизатора. Читать целиком »

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

IE 3px float bug

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

Если Corel draw ругается по поводу msxml4.
Решение: после установки MSXML4 выполни regsvr32 msxml4.dll

Опубликовано Октябрь 14, 2007 | автор: levik  |  Без комментариев »

Прячем e-mail от спам-роботов

Ссылки вида mailto: становятся объектом поиска компаний, занимающихся массовых рассылок. Естественно, ищут они не вручную, а при помощи программ или скриптов. Чаще всего алгоритм поиска прост - ищем подстроку вида mailto:__EMAIL__ и выделяем из неё часть после двоеточия.

Способы обхода: Читать целиком »

Опубликовано Октябрь 10, 2007 | автор: levik  |  Комментарии (3) »

40 советов по оптимизации кода

  1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
  2. echo is faster than print.
  3. Use echo’s multiple parameters instead of string concatenation.

Читать целиком »

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

mod_rewrite Примеры

При помощи mod_rewrite можно обрабатывать те или иные адреса. Возможности модуля достаточно велики - ведь используются регулярные выражения. Однако, “типовых” задач не так уж много. Итак… сборник “шпаргалок” по mod_rewrite для начинающих.

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

Вводное слово

Наконец-то я решился “завести” свой блог.  Почему решился!? Просто я считаю, что не стоит плодить сайты, которые не принесут пользы. От этого сайта польза очевидна - он нужен… мне лично. Хотя бы для того, чтобы собирать нужную мне информацию. Возможно, это неправильно… Но я так решил.
Имею право.

upd. Надеюсь, информация, собранная здесь, кому-нибудь окажется полезной…
Удачи!

Опубликовано Октябрь 1, 2007 | автор: levik  |  Без комментариев »