php如何防止程序重复执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何防止程序重复执行相关的知识,希望对你有一定的参考价值。

参考技术A 在用户表中加四个字段,一个记录是否登录,一个记录登录随机码(每次登录不一样),一个记录最后登录时间,一个记录登录ip,登录后保存user_id及登录随机码的session,在全局的配置文件中写一个方法.每次访问一个页面都去查询用户表的登录随机码及ip,如果发现ip或随机码不一致(因为同一局域网获取的ip可能一样,所以不能单纯的判断ip,加上验证随机码),则弹出提示消息,并清空session,强迫下线. 参考技术B function run()
static $is_run= false;
if ( $is_run == false )
$is_run = true;
echo '执行成功';
run();
$is_run = false; // 执行完成
else
echo '运行中,调用失败!';


run();

php如何避免刷新页面重复提交

表单页面add.php,有title,num等元素

数据处理页面handle.php,有$_POST['title'],$_POST['num]等获取表单元素

之后$sql=XXXXXXXXX,进行数据库插入

现在的问题是如果我每次不从add.php正常跳转到handle.php
而是直接在地址栏输入localhost/handle.php,每输入一次就会执行一次数据库插入操作
请问有什么办法能够避免

可以采用ajax配合使用php可以防止刷新页面重复提交
也可以使用框架同样可以防止
你直接访问数据处理页面的时候,$_POST[\'title\'],$_POST[\'num] 应该是空值,所以你增加一个判断,必须有具体的值,再进行sql操作。
参考技术A 你直接访问数据处理页面的时候,$_POST['title'],$_POST['num] 应该是空值,所以你增加一个判断,必须有具体的值,再进行sql操作。本回答被提问者采纳 参考技术B 用ajax来实现,这样地址栏会停留在localhost/add.php, 但是会提交到localhost/handle.php做数据库操作。 参考技术C 其实有一个不太好的办法
就是当用户提交表单之后,用js弹出一个框,已成功提交,
echo "<script>alert('已成功提交')</script>";
然后用php的header或者js跳转到提交页面
header("location:$post");
参考技术D //先判断有无post的值,如果没有就不用执行sql语句哈

if($_POST)

$title = isset($_POST['title']) ? tirm($_POST['title']) : '';
$num = isset($_POST['num]) ? intval($_POST['num]) : '';

之后$sql=XXXXXXXXX,进行数据库插入

追问

能再具体点吗,这伪码写的有点太通俗了啊。。。

以上是关于php如何防止程序重复执行的主要内容,如果未能解决你的问题,请参考以下文章

如何防止jQuery对象动画重复执行

php如何避免刷新页面重复提交

集群环境下如何防止定时任务重复执行?

flock防止crontab脚本周期内未执行完重复执行(转)

防止多次执行 JavaScript 函数

如何防止redisgraph中的数据重复?