微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在刷新页面时停止“Conform form resubmission”对话框

我使用订阅脚本将用户电子邮件地址添加mysql记录.我使用下面的代码进行此过程.工作正常.用户提交电子邮件页面刷新,数据库也更新为MysqL :-).但问题是,当我在提交电子邮件后刷新页面时,我正在获得一个符合表格的重新提交对话框.如果我点击继续按钮,同一个电子邮件(dublicate)正在更新新记录.我的数据库正在使用相同的电子邮件地址进行更新当我刷新页面.如何禁用此消息并停止更新MysqL中的相同重复记录.

<form id="myForm" action="" onsubmit="return validateForm();"method="post">
    <input type="hidden" name="action" value="update" />
    <input type="text" name="email" id="email" value="Enter your email here" onfocus="if (this.value == 'Enter your email here') {this.value = '';}" onblur="if   (this.value == '') {this.value = 'Enter your email here';}" onwebkitspeechchange = "this.value = this.value.replace('Enter your email here','')" style=" margin:0px 0px 0px 26px;color:#999; border:4px solid #bbb;border-radius:6px;font-size:1em;width:260px;height:30px; font-style:italic; font-family:"Times New  Roman", Times, serif;"/>
    <br>
    <center>
        <input class="button" type="image" src="RSS.png" />
    </center>
</form>
<?PHP
    $email = $_POST['email'];
    MysqL_connect ("localhost", "root", "") or die ('Error: ' . MysqL_error());
    MysqL_select_db ("test"); 
    $query="INSERT INTO newsletter_emails (email)VALUES ('".$email."')";
    MysqL_query($query) or die ('Error updating database');
?>
<script>
function validateForm() {
    var x = document.forms["myForm"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");
    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
        alert("Not a valid e-mail address");
        return false;
    } else {
        alert("thankyou");
    }
}
</script>

解决方法:

提交表单时,请在之后执行标准重定向.这样,重定向就不会发送POST信息.如果您需要存储错误消息之类的内容,请使用会话.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐