php初学者问题(表单提交,后按刷新) 用if($_SERVER['REQUEST_METHOD']=="POST")判断是不是递交的,是则执行插入插入完用 header("Location: " . $_SERVER['SCRIPT_NAME']); 转到自己,此时不是POST,就不会插入了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在表单中添加<input type="hidden" name="formaction" value="ActionName" />然后if( $_POST['formaction'] == 'ActionName' ){ #执行数据库操作} //if(!isset($_POST[wattatch]))也因为提交的原因,这句话也不好用.应该能用的,就是没有POST的话,如何处理 呵呵,这个问题其实是逻辑问题,解决方法有两个:1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");2: 在数据库添加时判断该数据存在与否。 呵呵,这个问题其实是逻辑问题,解决方法有两个:1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");2: 在数据库添加时判断该数据存在与否。 呵呵,这个问题其实是逻辑问题,解决方法有两个:1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");2: 在数据库添加时判断该数据存在与否。 成功插入后跳转回来,这是刚学php时经常遇到的问题。 很经典的问题 重复提交可以给表单一个类似验证码的字符串 同时把这个字符串写道SESSION中 在接收表单后比对验证码和SESSION是否一致 一致认为有效提交并改写SESSION中验证码字符串 介绍一个不错的函数,我再开发时常用.extract($_POST);这样就相当于打开了register_globals=on.当我保存数据时,数据库中的ID会自动加1保存,,保存后如果我按浏览器的刷新按钮,他就会不继续我的保存功能,使ID不断加一,保存到数据库中,对这咱问题我该如果解决. 你可以设置一个cookie ,再限制提交时间. 挡在执行sql 前面验证一道,如果是短期内刷新,则另外处理掉. 谢谢楼上各位,一楼的方法我还没试,有点难度,我找个时间慢慢来搞,三楼的你的方法,我试了一下,好像不行,刷新时还自动加1。四楼的你提跳转,我试了一下,不会用,我改天花功夫研究一下,你的第二种方法,我不知是不是我没看懂,因为我做的是自动加1,所以是数据库中肯定是没数据的。12楼的我觉得你那个cookie是个偷懒的方法,不足取,要是有人加了一记录,走开一会儿,再跑来刷新一下,怎么办。你下面的那条见意非常好。说句丢人的话,我到今天业务和逻辑都没完全搞明白。我会努力学习的。如果那位有空能帮我用看一下那个跳转语句应该加那儿,怎么加。(不好意思,偷懒了) 各位有空请帮我去看看这个问题。是js 方面的,父子两窗口参数传来传去的问题。就是父窗口传到子窗口,由子窗口提交到后台去处理,也就是php处理,然后把处理结果传回来,其中,子页面是隐藏的,不能对他进行操作。http://topic.csdn.net/u/20080329/15/cb84559c-2e73-4b99-b68a-cba82bb5b0f1.html $stmt->finish(); 这句后面加:echo '<script>Location.href=\"test.php\"</script>'; 楼上的那个没用,我加了他还是加1保存。echo ("<script language='javascript'> Location.href='wu_test.php'; </script>"); 貌似是小写的l........echo "<script>location.href=\"index.php\";</script>"; 多谢各位,确实只要多加一句header ( 'location: ./wu_test.php');或楼主给的echo (" <script language='javascript'> location.href='wu_test.php'; </script>");但又来一个问题,我加了一条记录后,还要显示。我加了那句话后,直接跳转到最开始没数据的页面了。也就是没有我刚加的数据的那条记录显示在页面上。 说白了就是判断POST是不是空的,在处理完以后跳转一下页面就可以了。 表单不仅仅是客户端表现问题 安全性上也要防止表单重复提交a.php<?php$data = microtime(true);$_SESSION['input'] = $data;?><from action="b.php" method="post"><input type="text" name="name"/><input type="hidden" name="input" value="<?php echo $data;?>" /></from>b.php<?phpif($_POST['input'] != $_SESSION['input']){echo '非法提交'; //这里应该是你的异常处理方式exit();}... ...?> 忘了最重要的东西了b.php <?php if($_POST['input'] != $_SESSION['input']){ echo '非法提交'; //这里应该是你的异常处理方式 exit(); }$_SESSION['input'] = '';... ... ?> 又花了半天时间写了个php上传类 php有没有一个函数可以查看该文件可以调用的函数定义 哪里有open source的仿bewww.net网站源码 php用户登录,帮我看一下哪错了,谢谢~ 赋值的问题 zend studio 调试php phpMyAdmin登陆异常 关于php访问access的困惑,困扰了一天也没解决 正则表达式/和\区别 安裝PHP的過程中﹐怎么也找不到php4ts.dll文件﹐怎么回事啊? 替朋友向大家咨询一个事情:给台湾朋友做一个销售AV光盘的在线行销系统,是否违法? 怎么把 华南 变成 华南?
然后if( $_POST['formaction'] == 'ActionName' )
{
#执行数据库操作
}
1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
2: 在数据库添加时判断该数据存在与否。
1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
2: 在数据库添加时判断该数据存在与否。
1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
2: 在数据库添加时判断该数据存在与否。
在接收表单后比对验证码和SESSION是否一致 一致认为有效提交并改写SESSION中验证码字符串
extract($_POST);这样就相当于打开了register_globals=on.当我保存数据时,数据库中的ID会自动加1保存,,保存后如果我按浏览器的刷新按钮,他就会不继续我的保存功能,使ID不断加一,保存到数据库中,对这咱问题我该如果解决.
你可以设置一个cookie ,再限制提交时间. 挡在执行sql 前面验证一道,如果是短期内刷新,则另外处理掉.
一楼的方法我还没试,有点难度,我找个时间慢慢来搞,三楼的你的方法,我试了一下,好像不行,刷新时还自动加1。四楼的你提跳转,我试了一下,不会用,我改天花功夫研究一下,你的第二种方法,我不知是不是我没看懂,因为我做的是自动加1,所以是数据库中肯定是没数据的。12楼的我觉得你那个cookie是个偷懒的方法,不足取,要是有人加了一记录,走开一会儿,再跑来刷新一下,怎么办。你下面的那条见意非常好。说句丢人的话,我到今天业务和逻辑都没完全搞明白。我会努力学习的。如果那位有空能帮我用看一下那个跳转语句应该加那儿,怎么加。(不好意思,偷懒了)
这句后面加:
echo '<script>Location.href=\"test.php\"</script>';
echo ("<script language='javascript'> Location.href='wu_test.php'; </script>");
echo "<script>location.href=\"index.php\";</script>";
<?php
$data = microtime(true);
$_SESSION['input'] = $data;
?>
<from action="b.php" method="post">
<input type="text" name="name"/>
<input type="hidden" name="input" value="<?php echo $data;?>" />
</from>b.php
<?php
if($_POST['input'] != $_SESSION['input']){
echo '非法提交'; //这里应该是你的异常处理方式
exit();
}
... ...
?>
<?php
if($_POST['input'] != $_SESSION['input']){
echo '非法提交'; //这里应该是你的异常处理方式
exit();
}
$_SESSION['input'] = '';
... ...
?>