Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Блокировка документа, Блокировка документа 
:(
    Опции темы
xlbaton
Дата 23.12.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Посоветуйте как лучше реализовать процедуру блокировки определенного документа, если он используется другими пользователями на других компьютерах. Т.е. нужно защитить от изменений на период правки другими пользователями, но при закрытии окна бровзера или выходе из документа блокировка должна быть снята.
Есть PHP и MySQL

Спасибо
PM MAIL   Вверх
nerezus
Дата 23.12.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



xlbaton, при открытии документа ставь блокировку. Убирай по таймауту 15 мин либо по кнопке "закрыть".


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 23.12.2008, 21:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



учитывая что пхп никак не связан с браузером, то блокировка имеет смысл только в момент чтения и записи. для файла есть такая функция flock(): http://php.ru/manual/function.flock.html
то же самое существует для блокировки таблицы в mysql

если же нужно, чтобы никто не смог дотронутся до файла пока кто-то правит его в браузере - надо писать соответствующий мкрипт, который перед открытием файла проверяет нет ли записи, что этот файл уже открыт кем-то ещё. по перезаписи файла, данные о блокировки стираются
однако, если правщик просто закроет браузер, то ничто не даст определить, что он кинул работу. поэтому нужно, чтобы перед проверкой на блокировку стирать старые проверки
т.е. метод всё равно не 100%
PM MAIL WWW   Вверх
theworldcreator
Дата 24.12.2008, 00:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Цитата

т.е. метод всё равно не 100% 

Вряд ли к редактированию документа допускаются абсолютно все, а своих людей можно попросить включать JS. Тогда задача превращается в периодическую отсылку статуса AJAX-ом. Кто первый начал отправлять - тот и редактирует(редактирует в течение времени, пока статусы не перестанут приходить), остальным говорить "занято". Тоже не 100 %, но шанс повышается. Чтобы сделать все заведомо рабочим, нужно сохранять все версии файла. Тогда если такая система когда нибудь не сработает(например у редактирующего инет на пол-часа отключат. Редактировать ему это не помешает, но документ разблокируется и другие люди смогут с ним работать, следовательно их работа потеряется или же этот человек не сможет сохранить свои изменения, потому что документ будет заблокирован), то из-за ошибки изменения не удаляться, а погребуться в череде версий файла(соответственно будут восстановимы).
PM MAIL WWW ICQ   Вверх
skyboy
Дата 24.12.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



можно как с системами контроля версий: отмечать, когда человек взял данные на редактирование: тогда можно определить ситуации, когда два человека считали документ, внесли правки и последовательно сохранят данные, перетирая изменения друг друга. обнаружить и предложить перезагрузить документ на редактирование. ну, или чтоб не случалось паники и отчаяния, вывести для сравнения и вдумчивой корректировки ту версию, которая уже сохранена, и ту, которую только пытаются сохранить - пусть человек решает. при этом, в любом случае, не помешало бы иметь хотя бы короткую историю версий документа.
PM MAIL   Вверх
ksnk
Дата 24.12.2008, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Хм... занятно! Блокировать не надо вообще, а нужно прикрутить Web svn smile

Не так и сложно, в принципе...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
xlbaton
Дата 25.12.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Цитата(ksnk @ 24.12.2008,  00:56)
Хм... занятно! Блокировать не надо вообще, а нужно прикрутить Web svn smile

Не так и сложно, в принципе...

Подробнее плиз, что за чудо, где взять и куда положить и т.д.
PM MAIL   Вверх
ksnk
Дата 25.12.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



тут звучало предложение skyboy, "как с системами котроля версий...". Ну а чего-ж не прикрутить и саму систему контроля. Понятно, что потребуются довольно приличные доделки на сервере, нужно поднять там svn, состряпать репозиторий, разместить svn клиент (Web svn, к примеру) Зато потом можно организовать чуть ли не одновременное и не особо конфликтное изменение исходников...

Впрочем, стоит оно того или нет, зависит от количества "админов" и объема подлежащих исправлению данных. 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.