Heim  >  Artikel  >  Backend-Entwicklung  >  PHP如何防止一个页面。被同时打开呢

PHP如何防止一个页面。被同时打开呢

WBOY
WBOYOriginal
2016-06-13 13:28:461032Durchsuche

PHP怎么防止一个页面。。被同时打开呢
PHP怎么防止一个页面。。被同时打开呢。。。。有什么办法实现呢。。。JS也行。。谢谢了

------解决方案--------------------
把以下代码加在程序开始处

PHP code
$fn = __FILE__ . 'lock';
if( file_exists($fn) ) exit('拒绝访问');
file_put_contents($fp, '');
ob_start( 'unlock' );
function unlock( $buffer ) {
  global $fn;
  unlink($fn);
  return $buffer;
}
<br><font color="#e78608">------解决方案--------------------</font><br>嗯,不能依靠session控制,是可欺诈的。<br>只能依靠服务端保证唯一打开了,flock文件锁就可以了.<br><br>
PHP code
<?php $fp = @fopen("lock.file", "c");
$ret = flock($fp, LOCK_EX | LOCK_NB);
if ($ret) {
        echo "after flock, before sleep" . PHP_EOL;
        sleep(5);
        flock($fp, LOCK_UN);
} else {
        echo "can't obtain the file lock" . PHP_EOL;
}
?>
<br><font color="#e78608">------解决方案--------------------</font><br>楼主可能是在做管理系统,因为一些管理系统会有特别的要求或者是担心同时插入的问题。<br>用数据库吧,核心是<br>IP(或用户ID)和当前打开页面的路径要关联,就像一个联合主键一样。<br>openUser openPage<br>1        index.php<br>2        modules/user/user_list.php<br>3        modules/user/user_list.php//这是错误的,因为User 1已经打开了“modules/user/user_list.php”页面。
<br><font color="#e78608">------解决方案--------------------</font><br>嗯,我就是担心他想要一个人<strong>已经</strong>"打开"的情况下,还不让别人"打开".....<br><br><br><br>
探讨

楼主可能是在做管理系统,因为一些管理系统会有特别的要求或者是担心同时插入的问题。
用数据库吧,核心是
IP(或用户ID)和当前打开页面的路径要关联,就像一个联合主键一样。
openUser openPage
1 index.php
2 modules/user/user_list.php
3 modules/user/user_list.ph……
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn