Вопрос № 88217: Здравствуйте! Имеется несколько таблиц в БД, нужно разделить пользователей по доступу к таблицам. Как лучше сделать: одна база - три таблицы и три пользователя с ограниченными правами к базе (НО могущих теоретически обращать ко всем таблицам, а не к ...Вопрос № 88288: Здравствуйте!
У меня стоит Денвер (PHP5). Использую в скрипте сессии. Скрипт один из трёх модулей: 1 - выбор действия; 2 - обработка данных, заполнение сессионных переменных; 3 - выбор данных из сессионных переменных, запись выбранных данных в фа...Вопрос № 88345: Здравствуйте.
Есть например следующий код в странице:
<title>Название статьи</title>
<description>Описание статьи</description>
<access name=”level”>5</access>
<kernel name="ar...
Вопрос № 88.217
Здравствуйте! Имеется несколько таблиц в БД, нужно разделить пользователей по доступу к таблицам. Как лучше сделать: одна база - три таблицы и три пользователя с ограниченными правами к базе (НО могущих теоретически обращать ко всем таблицам, а не к одной!) или разделить три таблицы на три разные базы (каждая уже с одной таблицей) и три пользователя, которые не смогут получить доступ не к своей таблице, т.к. она в другой базе?
Отправлен: 23.05.2007, 10:40
Вопрос задал: VicBar (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Madproger
Здравствуйте, Баринов Виктор Юрьевич!
Добрый день... В MySQL с помощью GRANT и REVOKE вы можете установить права на каждую таблицу... Т.е. разрешить SELECT и что еще надо отдельно на таблицу
(GRANT SELECT ON db.table1 TO user1@127.0.0.1 IDENTIFIED BY 'pass')
И если вы на остальные таблицы запретите SELECT то ни о каком "теоретическом чтении" (с) речи быть не может.... А создавать три разные базы - думаю не этично :)
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 10-ый класс)
Ответ отправлен: 23.05.2007, 10:48 Оценка за ответ: 5
Отвечает: Игорь Елизаров
Здравствуйте, VicBar!
А какая это СУБД ? Для MSSQL разграничение доступа пользователей возможно не только на уровне базы, но и на уровне таблицы, то есть можно задавать пользователям разные права на работу с таблицами.
кто-то будет видеть таблицу, а кто-то - нет
--------- Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: Студент)
Ответ отправлен: 23.05.2007, 22:26
Вопрос № 88.288
Здравствуйте!
У меня стоит Денвер (PHP5). Использую в скрипте сессии. Скрипт один из трёх модулей: 1 - выбор действия; 2 - обработка данных, заполнение сессионных переменных; 3 - выбор данных из сессионных переменных, запись выбранных данных в файл.
Скрипт начинается так:
session_start();
if (!session_is_registered('content_anons')) session_register("content_anons");
if (!session_is_registered('content_tv')) session_register("content_tv");
if (!session_is_registered('day')) session_register("day");
Вопрос.
Почему выводится предупреждение:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Предупреждение выводится только во втором модуле!
Сам по себе скрипт работает, но это предупреждение несколько раздражает :)
Отправлен: 23.05.2007, 17:39
Вопрос задал: Dedserge (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Селев Валерий
Здравствуйте, Dedserge!
Начиная с версии 4, рекомендуют обращаться к переменным сессии только через суперглобальный массив $_SESSION.
Поэтому просто используйте конструкции вида
if (!isset ($_SESSION['content_anons'])) ....
Ответ отправил: Селев Валерий (статус: 4-ый класс)
Ответ отправлен: 23.05.2007, 17:53 Оценка за ответ: 3 Комментарий оценки: Никакого эффекта данная замена не дала :(
<comment id=”15775562”>Все OK!</comment>
<comment id=”15775563”>Все BAD :(</comment>
<h1 class=”head”>Заголовок</h1>
Как мне из этого фрагмента добыть всю информацию о странице, т.е. должен получится массив:
$headers[title] = Название статьи
$headers[description] = Описание статьи
$headers[access][level] = 5
$headers[kernel][article_id] = 2577
$headers[kernel][article_dir] = 64
$headers[comment][15775562] = Все OK!
$headers[comment][15775563] = Все BAD :(
$headers[h1] = Заголовок
Для поиска простых значений элементов <name>Value</name> я использую следующую функцию:
function parse_element( $name = false, $read = false ) {
Отвечает: HookEst
Здравствуйте, Оськин Дмитрий Владимирович!
для обработки аттрибутов, создал еще одну функцию parseA($tag,$att,$src) - возвращает массив значений всех тегов $tag из $src имеющих аттрибут $att.
Вообщем смотрите приложение.
Успехов.
Приложение:
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 24.05.2007, 08:40 Оценка за ответ: 4 Комментарий оценки: Спасибо.
Я сделал так: /* * @ parse_elements * * * Value * * 2577 * */ function parse_elements( $element= false, $read = false ) { $result = false;
if( !empty( $read ) and !empty( $element) and preg_match_all(
"#(<".$element.".*?>)(.*?)(".$element.">)#si", $read, $array ) ) {
if( is_array( $result ) and empty( $name ) and count( $result ) == 1 ) return join( "", $result ); return $result; } может конечно же не так и хорошо с регулярными выражениями:)