ReusableForms v2.0 beta

PHP contact form with captcha

A contact form with validations and captcha to prevent spam submissions
This is a contact form built on top of Bootstrap framework. In addition to having the common fields that a contact form requires, the form also has a Captcha. Captcha is useful in preventing automated form submissions. The spam form submissions might result bad form submission notifications flooding your email inbox. We use Google recaptcha in this form. Recaptcha is quite useful in preventing bots.


        <h1>Contact Us</h1>
<form id="contact_form" name="contact_form" method="post">

    <div class="mb-3">
        <label for="name_input">Name</label>
        <input type="text" required maxlength="50" class="form-control" id="name_input" name="name" placeholder="Name">
    <div class="mb-3 row">
        <div class="col">
            <label for="email_addr">Email:</label>
            <input type="email" required maxlength="50" class="form-control" id="email_addr" name="email"
        <div class="col">
            <label for="phone_input">Phone</label>
            <input type="tel" required maxlength="50" class="form-control" id="phone_input" name="Phone"
    <div class="mb-3">
        <label for="message">Message</label>
        <textarea class="form-control" id="message" name="message" rows="3"></textarea>
    <div class="my-4">
        <div class="g-recaptcha" data-sitekey="6LchOyEUAAAAAPo9l0WmIgFkGu5D6Gyq-MjsIHS1"></div>
    <button type="submit" class="btn btn-primary px-4">Send</button>

Integrating the Code with Your Web Page

To seamlessly integrate the form code from into your web page, follow these simple steps:

  • The form code is plain HTML. Click the copy button located above the code and paste it into your web page's source code.
  • If the form uses a CSS framework like Bootstrap or TailwindCSS, ensure that your web page or website project has the necessary libraries linked. Consult the respective library documentation for guidance.

Setting up Back-end Processing and Record Keeping

The form code provided above is for the client side only. To fully benefit from the form's features, you'll need a back-end form processor. Ratufa is one such service, and integrating with it is straightforward. Watch the video demo for a step-by-step example.

To receive email notifications upon form submissions, store submission records, and search through them later, you'll need a back-end processor. Here's how to set one up:

Using Ratufa Backend

  1. Go to
  2. Click the "Connect your form" button.
  3. Copy the provided code and paste it at the bottom of the HTML form code above
  4. You can test the form within ReusableForms before copying it to your website. will show submissions on the right side.
  5. Copy the combined code to your web page.
  6. Ratufa will store your form submissions, and you can configure email notifications. You can search and download records whenever needed.

Setting up a Self-hosted PHP Backend (Advanced)

This method is recommended only for those familiar with server settings and customizing PHP code. Simfatic\FormHandler is a generic form handling script that can handle most form processing tasks.
  1. Clone the project to a local folder using git.
  2. Run composer update.
  3. Find sample form handler scripts in the "examples" folder in the repository. Customize handler.php according to your needs (e.g., add email addresses, update SMTP settings).
  4. Customize handler.js in the "examples" folder to point to the correct URL.
  5. Upload the updated formHandler folder to your website (upload the entire folder).
  6. Copy the HTML form code to your web page and add the handler.js file to your HTML code.
  7. Test your form.

Notes about reCAPTCHA

  1. Register yourself at reCAPTCHA.
  2. Obtain a site key and update the data-sitekey="xxxxx" attribute with it.
  3. Ensure that the domain name matches your website's domain name.
  4. Use the secret key to verify the reCAPTCHA server side.