开发者

Prevent form from being submitted twice

I have a simple php form, like this:

<?php

if(isset($_POST['myform']))
   // email...
else
   // display form

the problem is that if I refresh t开发者_如何学Pythonhe page after I submit the form, it gets submitted twice. How can I prevent this from happening?


You should perform a REDIRECT to a page with a message that the data was inserted... and a back button to go to the form again (if you want to)...

To redirect using PHP use the header function:

header('Location: http://www.example.com/');


Perform a redirect after the data is inserted to a confirmation page (can be done with header(), which should clear out the POST data and allow for refreshing without duplicating content.


In the case of user having lag and he hits the submit button a few times, then maybe use client side mechanism, use js to set the submit button to disabled once it is clicked. but will have to display message saying roughly something like, "sending message ... if no response pls reload page and retry".


session_start();    
if (!$_SESSION['REQUEST_TYPE_USER_ID'] == $_POST)
{
//your code
//after the success process
    $_SESSION['REQUEST_TYPE_USER_ID'] = $_POST;
}
else
{
// request duplicated
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜