Home  >  Article  >  Backend Development  >  每刷新一次,就有一次写入操作,怎么办?

每刷新一次,就有一次写入操作,怎么办?

WBOY
WBOYOriginal
2016-06-23 14:01:32617browse

我的php程序是这样的:用户那里有一个提交表单的内容,用户提交表单后,这里把它写入数据库:

if($_POST[wb])
{
mysql_query("insert into 。。。。。。。", $connect);
$_POST[wb] = "";
}

我的意思是:当$_POST[wb]非空时,表明用户提交了表单,此时把它写入数据库,可是,我自己试验的时候,提交表单后,是会写入,但是,刷新页面以后,又写入一次。以后每刷新一次页面,就会有一次写入操作,这个怎么办?

(既使我在写入操作后用了一句$_POST[wb] = ""把这个变量清零也不行,再刷新还是会写入)。


回复讨论(解决方案)

不太明白楼主的意思。楼主不是用表单的submit提交吗?
既然点按钮才能提交,楼主又是怎样刷新的呢?在哪个页面刷新呢?
楼主可以把php的处理语句单独放在一个php文件里,只要form的action指向这个文件就好了。
接受post和提交post都在同页面会很复杂

提交后加一个header跳到其它页面,就不怕刷新了。

不太明白楼主的意思。楼主不是用表单的submit提交吗?
既然点按钮才能提交,楼主又是怎样刷新的呢?在哪个页面刷新呢?
楼主可以把php的处理语句单独放在一个php文件里,只要form的action指向这个文件就好了。
接受post和提交post都在同页面会很复杂

就是浏览器工具栏里那个“刷新”按钮。
如果提交到另一个页面,比如submit.php,那么如何跳转到index.php呢?(因为提交以后,返回给用户的还是index.php的内容)
还有,提交到另一个页面,那cookie什么的还有效吗?

浏览器刷新过程中可能存在重新递交表单的情况。。建议楼主使用其他浏览器测试下。

cookies是本地存储的,只要存在浏览器的临时目录并且没过期就是生效的。
你问的应该是session吧?session的话关闭页面之前都有效。

submit可以这样写
echo "添加成功<script>window.location.href='/index.php'</script>"
这样自动就回到index了

js验证下,如果值为空,就提示出来,表单就不提交。

cookies是本地存储的,只要存在浏览器的临时目录并且没过期就是生效的。
你问的应该是session吧?session的话关闭页面之前都有效。

submit可以这样写
echo "添加成功<script>window.location.href='/index.php'</script>"
这样自动就回到index了
谢谢!你的方法要用script,我暂时还不会。我在login.php等文件中用了header语句,跳转到index.php,发现是可以正常工作的。而且也不会重复提交了,谢谢!

不太明白楼主的意思。楼主不是用表单的submit提交吗?
既然点按钮才能提交,楼主又是怎样刷新的呢?在哪个页面刷新呢?
楼主可以把php的处理语句单独放在一个php文件里,只要form的action指向这个文件就好了。
接受post和提交post都在同页面会很复杂
感谢!我发现提交页面和接受提交页面在同一个文件确实很复杂。而且容易出这样那样的问题。听了你的建议,我把登录,提交,还有别的一个功能都分离出来,单独用一个php文件,然后在这些文件中处理完了以后,用header跳转回index.php。工作得挺不错的。

有用的 学习了 我也是初学者

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn