页面打开状态提示

WBOY
Libérer: 2016-06-23 13:59:07
original
875 Les gens l'ont consulté

写个了信息管理页面  因为有多个人操作 有时会有两个人同时开打同一个条信息,想做个状态提示  如果 有一个人已经打开了这个页面  再有人打开时会有提示已有人正在操作,求方法,


回复讨论(解决方案)

笼统的说就是加锁
至于如何加,那要看的业务和实现来定

可以给文件加锁

笼统的说就是加锁
至于如何加,那要看的业务和实现来定

可以给文件加锁

那是不是表加锁? 可这样 同表内的信息 别人不是也不能操作 能不能只锁表中的某一条

如何对行 表 数据库加锁 

 是可以有多种形式的,要根据你的业务逻辑的实现来选择

你说的表锁和记录锁都是不能用于你的场景的,他们都只在同一数据库连接中有效

 是可以有多种形式的,要根据你的业务逻辑的实现来选择

你说的表锁和记录锁都是不能用于你的场景的,他们都只在同一数据库连接中有效

我是用a 标签传递id 的 如果有人已经在操作这个id 别人在打开这个链接就提示 已有人操作
[code=php][" >修改/code]
提示应该怎么写类

当文件处于锁定状态的时候 ,再去操作文件会返回false,可通过返回值判断;

lock.php
$fo = fopen('abc.txt', 'r+'); 
flock($fo, LOCK_EX); 
sleep(10); 
flock($fo, LOCK_UN); 
?> 

read.php
$fo = fopen('abc.txt', 'r+'); 
if(!$a=fgets($fo)){  
    echo "已有人操作";
}
else{
    echo $a;
};
?> 

加一个标记位,如表加个字段zyflag 0表示未占用 1表示占用 打开的时候置1 关闭时候置0

上面的文件锁或缓存锁比较好
因为打开页面的时候可以直接判断下文件和缓存看有没有人在用

khmod.php

if(file_exists('lock/' . $_GET['id'])) die('已有人操作');file_put_contents('lock/' . $_GET['id']);//这里是原来的代码unlink('lock/' . $_GET['id']);
Copier après la connexion
Copier après la connexion

khmod.php

if(file_exists('lock/' . $_GET['id'])) die('已有人操作');file_put_contents('lock/' . $_GET['id']);//这里是原来的代码unlink('lock/' . $_GET['id']);
Copier après la connexion
Copier après la connexion

lock/ 这不就是路径了吗
按代码的意思 如果用户只是打开页面后没有操作就退出了 那不就一直都会提示 已有人操作

是的,存在这种现象
这是加锁的后遗症,出现时只能由管理员解锁

根据你的业务场景,可以通过session或者cookie来判断页面是否已经打开,给个标示判断即可。

根据你的业务场景,可以通过session或者cookie来判断页面是否已经打开,给个标示判断即可。
在不同电脑上操作cookie 不行吧
session的话 应该怎么判断那?

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal