Webmaster Tutorials - Web Development
Webmaster Resource Directory | Contact Us | Submit Your Site

LEARN

BUILD

PROMOTE

SELL

MANAGE

GET LISTED



Preventing Repeat Form Submission Using PHP Sessions


We've all seen those messages on some websites warning not to click a button more than once or negative consequences, like paying a bill twice, may result. Sometimes we can cause these problems by hitting the back or refresh buttons. In this article I will explain a methodology whereby a site can ensure each form is submitted only once, thereby demonstrating that such warnings are unnecessary and, depending on the nature of the problems caused, worth repairing immediately. Let's begin by taking a look at the process we are studying: Form Submission. As pedantic as it may seem, it will be worthwhile to detail each of the steps in this process:

  • Visitor requests a page from the server which has a form on it.
  • Server retrieves form and sends to user.
  • User enters data on form and submits to server.
  • Server processes form data and returns resultant page.
  • The scenario we now need to analyze is when the user re-triggers a previous form submission process. What we need to find or create is something which changes during the form submission process which does not depend on the specific form being submitted and which we can tell changed. That was a loaded sentence which fully details our solution, so let's break it down. Find or create something which
  • changes during the form submission process,
  • does not depend on the specific form being submitted, and
  • we can tell changed.
  • Since the item which changes does not depend on the form being submitted (e.g. it doesn't matter if it's a newsletter registration form, customer signup form, payment form, etc.), the item is not something which already exists and therefore must be created, so let's create a form variable called submissionId and assume it has the 3 properties mentioned above. So far, so good -- or so it appears! The third "property" is that "we can tell [it] changed", but "changed" is not a property of a variable, so we need to look at this more closely. In order to tell something changed, we must have a reference point, an answer to the question "changed from what?" This is where a session variable will come into play. If we define a session variable, say $_SESSION['nextValidSubmission'] and treat it as a reference point, we will have all of the tools necessary to protect our visitors. The idea will be to keep the session variable updated with the last submissionId sent out and change the submissionId each time it is sent out to the user. Then, if they try to resubmit the data, they will be submitting an old submissionId which doesn't match nextValidSubmission and we will know not to re-process this data. Let's look at this in terms of the processes:

  • Visitor requests a page from the server which has a form on it.
  • Server retrieves form, generates a new submissionId which is embedded into the form, updates nextValidSubmission, and sends to user.
  • User enters data on form and submits to server.
  • Server processes form data, changes nextValidSubmission, and returns resultant page.
  • Now, if the visitor somehow resends the data, they will be sending the old submissionId which will not match the new nextValidSubmission. So, you can now say goodbye to relying on javascript to remove/disable buttons, silly warning messages, and upset customers by preventing form re-submission.

    Webmaster of Script Reference - The *NEW* PHP Reference & Tutorial Site For Non-Programmers
    See here for more detailed information, an example using PHP, and an alternate method which doesn't require sessions.


    More Web Development Articles

    Make Your Own Website - General Website Design Tips
    Wow, we`ve already taken a domain and chosen a web host. Great job ! Now it`s time for something special: making your own website.

    A Website Is Not Enough
    Your ObjectiveYour small business needs an appealing and professional website but that is just the beginning. If no one visits your website and -- more importantly -- if it does not bring in new customers and allows you to sell more to your current customers, then your site is not effective.

    Set Up Your Website in Minutes ? For Free
    There was a time not long ago when setting up a website meant endless technical jargons, hiring a web designer, writing the html or jawa codes, selecting the right hosting platform and deciding on the band width.Now setting up a website is like 1.

    Ebooks for Webmasters
    Internet has opened a whole new world for web developers and web designers who are looking to get their websites developed that are finally launched on the huge world of World Wide Web. Keeping that factor webmasters are the people who have to face a lot of problems mainly due to the entrance of new software, programming languages and viruses that are a real threat for the webmasters.

    Stop Losing Precious Web Site Traffic to the Dreaded World Wide Web Black Hole
    You work hard to build traffic to your web page. If you are not doing 1 simple step you are loosing a portion of all your web site traffic to the dreaded World Wide Web Black Hole.

    How Worldly is Your World Wide Web?
    The growth in Internet usage around the world is astounding - 146% in the five years prior to March 2005. And it's not just European and North American users on the Net.

    7 Tips to Make Your Order Page Work Harder
    So your prospect, Mary, is sitting at the computer reading your compelling sales letter. She's convinced she needs your product.

    12 Tips To Great Websites
    Why do some sites succeed while the vast majority of others fail? More and more website owners are asking themselves these questions. The answers are often more obvious than you may think.

    Five Question-Five Minute Web Makeover Quiz
    If you haven't made the sales and built your clients to an income you want, then you may need a Web Site makeover.What I mean by that is, most people contact a web master to put up their site.

    Do This One Thing to Create a Powerful Product-Selling Web Site
    Spend time planning your Web site. Before you design a page or write a word, get a visual, and mental picture of your preferred audience.




    Helpful Tools

    NetDownload
    freeware and software downloads

    Findahost
    web hosting directory

    FindaTechJob
    new computer jobs daily

    ManagedHostingPro
    Managed Hosting and Colocation



    © 2007 webmasteredge.com