gpt4 book ai didi

php - 如何防止 PHP 多次执行代码?

转载 作者:可可西里 更新时间:2023-11-01 00:24:31 25 4
gpt4 key购买 nike

我有一个 WordPress 插件,其中包含一个按计划执行的备份脚本。问题是,如果有人连续多次点击该页面,它可以多次执行备份脚本。关于如何防止多次执行的任何想法?

global $bwpsoptions;

if ( get_transient( 'bit51_bwps_backup' ) === false ) {

set_transient( 'bit51_bwps_backup', '1', 300 );

if ( $bwpsoptions['backup_enabled'] == 1 ) {

$nextbackup = $bwpsoptions['backup_next']; //get next schedule
$lastbackup = $bwpsoptions['backup_last']; //get last backup

switch ( $bwpsoptions['backup_interval'] ) { //schedule backup at appropriate time
case '0':
$next = 60 * 60 * $bwpsoptions['backup_time'];
break;
case '1':
$next = 60 * 60 * 24 * $bwpsoptions['backup_time'];
break;
case '2':
$next = 60 * 60 * 24 * 7 * $bwpsoptions['backup_time'];
break;
}

if ( ( $lastbackup == '' || $nextbackup < time() ) && get_transient( 'bit51_bwps_backup' ) === false ) {

$bwpsoptions['backup_last'] = time();

if ( $lastbackup == '' ) {

$bwpsoptions['backup_next'] = ( time() + $next );

} else {

$bwpsoptions['backup_next'] = ( $lastbackup + $next );

}


update_option( $this->primarysettings, $bwpsoptions );

$this->execute_backup(); //execute backup

}

}

}

最佳答案

  • 在代码开头创建一个文件。
  • 当代码完成运行时删除文件。
  • 在代码的开头确保文件在运行前不存在。

有点像 linux 中的 apt-get 锁。

关于php - 如何防止 PHP 多次执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com