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,每输入一次就会执行一次数据库插入操作
请问有什么办法能够避免
也可以使用框架同样可以防止
你直接访问数据处理页面的时候,$_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如何防止程序重复执行的主要内容,如果未能解决你的问题,请参考以下文章