重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这是PHP语法错误引起的。我想你没认真看过PHP手册吧。
创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为长垣企业提供专业的网站设计、做网站,长垣网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
"SELECT * FROM users where UserName=’{$_POST['username']}‘"
有什么问题,错误提示是什么,你要贴出来啊!
PHP 防止表单重复提交,使用令牌来做验证,即可解决。示例如下:
index.php:
?php
header("Content-type:text/html;charset=utf-8");
//开启session
session_start();
//如果令牌为空,则生成一个令牌
if(!isset($_SESSION['token'] ) || $_SESSION['token'] == ""){
//给当前表单生成一个令牌
$_SESSION['token'] = md5(microtime(true));
}
?
form method="get" action="deal.php"
名称: input type="text" name="names"br/
描述: input type="text" name="desc"br/
input type="text" name="token" value="?=$_SESSION['token']?"
input type="submit" value="提交"
/form
deal.php:
?php
header("Content-type:text/html;charset=utf-8");
//开启session
session_start();
//验证令牌
if($_REQUEST['token'] === $_SESSION['token']){
//表单已经提交,重新生成令牌
$_SESSION['token'] = md5(microtime(true));
echo "表单提交成功:br/";
print_r($_REQUEST);
}else{
echo "重复提交";
}
?
每次进入提交的页面,给一个session,为了避免重复,session的key可以是随机的。
在表单填写页面
?php
session_start(); // 启用session
$time = time();
$key = 'sess_' . $time; // 根据时间生成一个随机的session key
$_SESSION[$key] = $time; // 设置session的值
?
!--{通过隐藏表单将 session 的 key传递到服务端处理}--
input type="hidden" name="session_key" value="?php echo $time;?" /
处理页面
?php
session_start(); // 启用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果没有传 session_key 参数
// 或者 session_key 参数值截断 sess_后的数字 与 session参数值不匹配
unset($_SESSION[$key]); // 删除 session 值
// 然后考虑是否要提示错误,或者转入另一个页面
exit(); // 终止页面代码执行
}
// 下面进行数据写操作
// 数据操作完成后,删除session
unset($_SESSION[$key]);
// 后续操作
?
$########################
一个页面也是一样的,我给你的只是一个思维,
具体如何实现,你要根据自己的实际情况去处理
很多东西都不是通用的
另外,不管多少个页面,必然包含两个部分,一部分是表单填写,一部分是数据处理,这个跟多少个页面无关~~就看你是否能够理解这段代码的意义,如果不理解的话,嵌套进去也没啥用,能够理解的话,或许你能够找出更适合自己的解决方案
亲,你可以加验证码验证啊!~~
第一次产生验证码,然后验证完成后就将验证码更新掉,这样他再提交验证码就错误了,验证码错误就不让他提交,直接转向就好了!~~
验证码是防止重复提交的一个简单的方式,目前还是比较有效的!~~
而且tp生成验证码很简单,验证也很方便的!~~
具体可以参考文档这里:
希望对你有帮助,如果有帮助,记得采纳哟!~~