重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你的问题有个难点
创新互联建站主营忻府网站建设的网络公司,主营网站建设方案,手机APP定制开发,忻府h5小程序定制开发搭建,忻府网站营销推广欢迎忻府等地区企业咨询
跳转到B后 B无法知道A有没有操作成功,当然也不知道刚插入的数据是什么?
那要知道有没有新数据的方法也不是没有
1.在B中使用心跳机制,去检查有没有新数据上来。有的话就显示。
2.用推的方式,也就是serverpush,有新数据通知B
解决了这个问题,其他问题都好解决,延迟插入写个队列就行。
不过你要实现这样的功能,不是PHP就可以办到的,要配合一些服务器技术和Shell才能完成
其实有个很简单的解决方法。
就是提交的时候给一个提示就好了,别用alert,伪装一个就好了。
给 form 一个 onsubmit 的事件,然后让你的正在加载的样式展示出来。
原理也很简单,当你提交的时候js会运行,展示你的正在加载的提示。但是呢因为访问缓慢并没有跳转,那么页面就提示了正在加载的字样了……
每次判断完成后都让它跳转到之前的页面或者另外的页面,就不会每次刷新都提交了!
根据你的代码增加了些东西
?php
require "conn.php";
@session_start();
//判断提交频率,一般只限制提交成功的频率
if(!empty($_SESSION['last_post'])){
if($_SESSION['last_post']time()-60){
echo "scriptalert('提交过于频繁');history.go(-1)/script";
}
}
$username = $_REQUEST['username'];
$phone = $_REQUEST['phone'];
//不允许为空
if(empty($username) || empty($phone)){
echo "scriptalert('插入失败');history.go(-1)/script";
}
//对字符串转义,防止sql注入。
//建议根据数据格式要求进一步过滤(如:电话只允许数字和- 或者匹配手机号码格式)
//用户名根据要求只允许 a-z0-9_ 这些字符 ,或者中文
$username = addslashes($username);
$phone = addslashes($phone);
$sql = "insert into user (username,phone) VALUES ('$username','$phone')";
echo $sql;
if (execQuery($sql)) {
//保存成功时记录时间
$_SESSION['last_post'] = time();
echo "script language=\"javascript\"alert('保存成功');location.href='2k.htm'/script";
} else {
echo "scriptalert('插入失败');history.go(-1)/script";
}
建议你根据自己的情况对有些细节进一步优化一下