Hello friends, in this blog post, you will learn how to build a functional contact form in PHP. This form will utilize HTML, CSS, JavaScript, and PHP to create a fully functional contact system for your website. Contact forms enable visitors to reach out directly to the site owner. In this tutorial, you’ll see how to create a functional PHP contact form that includes fields for user information like their name, email address, and message subject.

The functional contact form in PHP is vital to any website as it allows seamless communication between users and the website owner. You can customize this form’s fields based on your website’s needs. This project ensures validation to guarantee users input valid email addresses and messages.

Why Build a Functional Contact Form in PHP?

  • Direct Communication: A contact form allows users to communicate directly with you, avoiding the need for them to open an email client.
  • Data Validation: The form ensures that valid emails and messages are submitted, reducing spam and errors.
  • Customization: You can customize the form fields to gather more data or offer specific queries.

How the Functional PHP Contact Form Works

This functional contact form in PHP has dynamic status text that indicates whether a message has been successfully sent. The form is fully validated using JavaScript, so users must enter a valid email and message before submitting.

Unlike traditional contact forms that refresh the page upon submission, this contact form uses Ajax. It sends all form data (name, email, phone, message) through Ajax to a PHP script, which processes the information and sends it via email using the PHP mail() function.

Steps to Create a Functional PHP Contact Form

  1. Create the HTML File: Name the file index.html, and include form fields like name, email, and message. This is the structure of the contact form.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Contact Form in PHP</title>
  <link rel="stylesheet" href="style.css">
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"/>
</head>
<body>
  <div class="wrapper">
    <header>Send us a Message</header>
    <form action="#">
      <div class="dbl-field">
        <div class="field">
          <input type="text" name="name" placeholder="Enter your name">
          <i class='fas fa-user'></i>
        </div>
        <div class="field">
          <input type="text" name="email" placeholder="Enter your email">
          <i class='fas fa-envelope'></i>
        </div>
      </div>
      <div class="dbl-field">
        <div class="field">
          <input type="text" name="phone" placeholder="Enter your phone">
          <i class='fas fa-phone-alt'></i>
        </div>
        <div class="field">
          <input type="text" name="website" placeholder="Enter your website">
          <i class='fas fa-globe'></i>
        </div>
      </div>
      <div class="message">
        <textarea placeholder="Write your message" name="message"></textarea>
        <i class="material-icons">message</i>
      </div>
      <div class="button-area">
        <button type="submit">Send Message</button>
        <span></span>
      </div>
    </form>
  </div>
  <script src="script.js"></script>
</body>
</html>

2. Create the CSS File: Name it style.css, and apply styles to make the form look professional and responsive.

/* Import Google font - Poppins */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}
body{
  display: flex;
  padding: 0 10px;
  min-height: 100vh;
  background: #0D6EFD;
  align-items: center;
  justify-content: center;
}
::selection{
  color: #fff;
  background: #0D6EFD;
}
.wrapper{
  width: 715px;
  background: #fff;
  border-radius: 5px;
  box-shadow: 10px 10px 10px rgba(0,0,0,0.05);
}
.wrapper header{
  font-size: 22px;
  font-weight: 600;
  padding: 20px 30px;
  border-bottom: 1px solid #ccc;
}
.wrapper form{
  margin: 35px 30px;
}
.wrapper form.disabled{
  pointer-events: none;
  opacity: 0.7;
}
form .dbl-field{
  display: flex;
  margin-bottom: 25px;
  justify-content: space-between;
}
.dbl-field .field{
  height: 50px;
  display: flex;
  position: relative;
  width: calc(100% / 2 - 13px);
}
.wrapper form i{
  position: absolute;
  top: 50%;
  left: 18px;
  color: #ccc;
  font-size: 17px;
  pointer-events: none;
  transform: translateY(-50%);
}
form .field input,
form .message textarea{
  width: 100%;
  height: 100%;
  outline: none;
  padding: 0 18px 0 48px;
  font-size: 16px;
  border-radius: 5px;
  border: 1px solid #ccc;
}
.field input::placeholder,
.message textarea::placeholder{
  color: #ccc;
}
.field input:focus,
.message textarea:focus{
  padding-left: 47px;
  border: 2px solid #0D6EFD;
}
.field input:focus ~ i,
.message textarea:focus ~ i{
  color: #0D6EFD;
}
form .message{
  position: relative;
}
form .message i{
  top: 30px;
  font-size: 20px;
}
form .message textarea{
  min-height: 130px;
  max-height: 230px;
  max-width: 100%;
  min-width: 100%;
  padding: 15px 20px 0 48px;
}
form .message textarea::-webkit-scrollbar{
  width: 0px;
}
.message textarea:focus{
  padding-top: 14px;
}
form .button-area{
  margin: 25px 0;
  display: flex;
  align-items: center;
}
.button-area button{
  color: #fff;
  border: none;
  outline: none;
  font-size: 18px;
  cursor: pointer;
  border-radius: 5px;
  padding: 13px 25px;
  background: #0D6EFD;
  transition: background 0.3s ease;
}
.button-area button:hover{
  background: #025ce3;
}
.button-area span{
  font-size: 17px;
  margin-left: 30px;
  display: none;
}
@media (max-width: 600px){
  .wrapper header{
    text-align: center;
  }
  .wrapper form{
    margin: 35px 20px;
  }
  form .dbl-field{
    flex-direction: column;
    margin-bottom: 0px;
  }
  form .dbl-field .field{
    width: 100%;
    height: 45px;
    margin-bottom: 20px;
  }
  form .message textarea{
    resize: none;
  }
  form .button-area{
    margin-top: 20px;
    flex-direction: column;
  }
  .button-area button{
    width: 100%;
    padding: 11px 0;
    font-size: 16px;
  }
  .button-area span{
    margin: 20px 0 0;
    text-align: center;
  }
}

3. Create the JavaScript File: Use script.js to validate the form and send data via Ajax.

//Contact Form in PHP
const form = document.querySelector("form"),
statusTxt = form.querySelector(".button-area span");
form.onsubmit = (e)=>{
  e.preventDefault();
  statusTxt.style.color = "#0D6EFD";
  statusTxt.style.display = "block";
  statusTxt.innerText = "Sending your message...";
  form.classList.add("disabled");

  let xhr = new XMLHttpRequest();
  xhr.open("POST", "message.php", true);
  xhr.onload = ()=>{
    if(xhr.readyState == 4 && xhr.status == 200){
      let response = xhr.response;
      if(response.indexOf("required") != -1 || response.indexOf("valid") != -1 || response.indexOf("failed") != -1){
        statusTxt.style.color = "red";
      }else{
        form.reset();
        setTimeout(()=>{
          statusTxt.style.display = "none";
        }, 3000);
      }
      statusTxt.innerText = response;
      form.classList.remove("disabled");
    }
  }
  let formData = new FormData(form);
  xhr.send(formData);
}

4. Create the PHP File: This file, named message.php, will process the form submission. Be sure to set your email as the $receiver to receive messages.

//Contact Form in PHP
<?php
  $name = htmlspecialchars($_POST['name']);
  $email = htmlspecialchars($_POST['email']);
  $phone = htmlspecialchars($_POST['phone']);
  $website = htmlspecialchars($_POST['website']);
  $message = htmlspecialchars($_POST['message']);

  if(!empty($email) && !empty($message)){
    if(filter_var($email, FILTER_VALIDATE_EMAIL)){
      $receiver = "receiver_email_address"; //enter that email address where you want to receive all messages
      $subject = "From: $name <$email>";
      $body = "Name: $name\nEmail: $email\nPhone: $phone\nWebsite: $website\n\nMessage:\n$message\n\nRegards,\n$name";
      $sender = "From: $email";
      if(mail($receiver, $subject, $body, $sender)){
         echo "Your message has been sent";
      }else{
         echo "Sorry, failed to send your message!";
      }
    }else{
      echo "Enter a valid email address!";
    }
  }else{
    echo "Email and message field is required!";
  }
?>
Want to Check Username Availability on Social Media?If you’re looking to check username availability on various social media platforms, visit NameChkr to find out!
Read Also

  1. Glassmorphism Login Form in HTML and CSS
    Explore the stylish world of glassmorphism as you create a modern login form using HTML and CSS. This guide breaks down the design process step by step.
  2. Toggle Button using HTML, CSS, and JavaScript
    Discover how to enhance user interaction by creating a sleek toggle button with HTML, CSS, and JavaScript. This tutorial covers everything from structure to styling.
  3. Responsive Cards in HTML and CSS
    Learn how to design eye-catching responsive cards that adapt seamlessly to any device. This guide offers practical tips for achieving stunning layouts.
  4. Build a Google Gemini Chatbot Using HTML, CSS, and JS
    Dive into chatbot development by creating a Google Gemini chatbot with HTML, CSS, and JavaScript. This tutorial will help you understand the basics of interactive forms.

Final Words

Building a functional contact form in PHP is a great way to improve user interaction on your website. The tutorial above helps you easily create and integrate a contact form that works smoothly without requiring page reloads. If you encounter issues, you can download the complete source code using the button below. Customize the form as needed to fit your website’s unique needs!

25 Replies to “Functional Contact Form in PHP

  • Sonia Mehta
    Sonia Mehta
    Reply

    Fantastic tutorial! Your step-by-step guide to building a functional contact form in PHP was incredibly helpful. The sections on form validation and email handling were particularly well-explained. This guide will be a great asset for anyone looking to create robust contact forms. Thanks for the clear and practical instructions!

  • Aisha Khan
    Aisha Khan
    Reply

    Excellent guide! Your step-by-step approach to building a functional contact form in PHP was incredibly clear and practical. The explanations on handling form submissions and validation were especially helpful. This tutorial is a fantastic resource for anyone looking to improve their PHP skills and create effective contact forms. Thank you for sharing such valuable insights!

  • Rohit Singh
    Rohit Singh
    Reply

    Great tutorial! Your guide on building a functional contact form in PHP was very thorough and easy to understand. The sections on form validation and email handling were particularly useful. This resource will definitely help me enhance my PHP skills and create effective contact forms. Thanks for the detailed and practical advice!

  • Sneha Rao
    Sneha Rao
    Reply

    Great tutorial! Your explanation of how to build a functional contact form in PHP was very clear and practical. I found the sections on form validation and email handling especially useful. This guide will definitely help me with my PHP projects. Thanks for the detailed and easy-to-follow instructions!

  • Amit Patel
    Amit Patel
    Reply

    Excellent tutorial! Your step-by-step approach to building a functional contact form in PHP was very clear and informative. The tips on validation and email handling were particularly useful. This guide is a fantastic resource for anyone looking to enhance their PHP skills. Thanks for the detailed and practical insights!

  • Divya Sharma
    Divya Sharma
    Reply

    Wonderful tutorial! Your guide to building a functional contact form in PHP was both comprehensive and easy to follow. The explanations on validation and handling form submissions were especially helpful. This resource will be invaluable for my PHP projects. Thanks for sharing such detailed and practical insights!

  • Rajesh Iyer
    Rajesh Iyer
    Reply

    Fantastic guide! Your instructions on building a functional contact form in PHP were clear and detailed. The sections on form validation and email handling were particularly useful. This tutorial is a great resource for enhancing PHP skills and building effective contact forms. Thanks for the well-explained and practical advice!

  • Ananya Gupta
    Ananya Gupta
    Reply

    Fantastic tutorial! Your guide to building a functional contact form in PHP was incredibly thorough and easy to follow. The sections on validation and email handling were especially helpful. This resource will be invaluable for my web development projects. Thanks for the detailed and practical insights!

  • Arjun Rao
    Arjun Rao
    Reply

    Great tutorial! The step-by-step approach to building a functional contact form in PHP was very informative and easy to understand. The sections on validation and email handling were particularly useful. This guide is perfect for anyone looking to enhance their PHP skills. Thanks for the comprehensive and practical advice!

  • Suresh Kumar
    Suresh Kumar
    Reply

    Fantastic tutorial! Your detailed guide on building a functional contact form in PHP was very informative and easy to follow. The sections on form validation and handling email submissions were particularly useful. This will be a great addition to my PHP skill set. Thanks for sharing such a practical and well-explained resource!

  • Vikram Singh
    Vikram Singh
    Reply

    Excellent tutorial! Your step-by-step guide to building a functional contact form in PHP was incredibly clear and thorough. I found the sections on form validation and email handling particularly useful. This will definitely help me with my PHP projects. Thanks for providing such a practical and insightful resource!

  • Arun Kumar
    Arun Kumar
    Reply

    Fantastic tutorial! The step-by-step instructions for building a functional contact form in PHP were clear and very useful. I particularly appreciated the sections on form validation and email handling. This guide will be a great asset for my PHP development projects. Thanks for sharing such a practical and detailed resource!

  • Kiran Patel
    Kiran Patel
    Reply

    Wonderful tutorial! The step-by-step instructions for building a functional contact form in PHP were clear and comprehensive. I found the sections on form validation and handling submissions especially useful. This guide will definitely enhance my PHP skills. Thanks for providing such a detailed and practical resource!”

  • Aarti Sharma
    Aarti Sharma
    Reply

    Excellent tutorial! The step-by-step guide to building a functional contact form in PHP was incredibly helpful. I particularly appreciated the explanations on form validation and handling submissions. This guide will be a great addition to my development toolkit. Thanks for providing such a clear and practical resource!

  • Suresh Kumar
    Suresh Kumar
    Reply

    This guide is fantastic! The step-by-step instructions for building a functional contact form in PHP were clear and thorough. I especially appreciated the sections on form validation and handling submissions. This will be extremely useful for my web projects. Thanks for providing such a detailed and practical tutorial!

  • Rajesh Kumar
    Rajesh Kumar
    Reply

    This tutorial is incredibly useful! The detailed guide on building a functional contact form in PHP was clear and easy to follow. I especially appreciated the sections on handling form submissions and validations. This will be a great addition to my development toolkit. Thanks for the comprehensive guide!

  • Ravi Kumar
    Ravi Kumar
    Reply

    This is a fantastic tutorial! The guide on building a functional contact form in PHP was very clear and comprehensive. I especially appreciated the sections on handling form submissions and validation. This will be incredibly useful for my projects. Thanks for the detailed instructions!

  • Ritika Verma
    Ritika Verma
    Reply

    This tutorial is fantastic for anyone looking to build a contact form in PHP! The step-by-step instructions were clear and easy to follow. I especially appreciated the focus on form validation and handling submissions. This guide will definitely help improve the functionality of my website. Thanks for the great insights!

  • Sneha Gupta
    Sneha Gupta
    Reply

    This is a fantastic guide for building a contact form in PHP! The instructions are clear and straightforward, making it easy to follow along. I especially appreciated the tips on handling form submissions and validation. This will definitely help in enhancing the functionality of my website. Thanks for sharing!

  • Arin
    Arin
    Reply

    Master the essentials of creating a fully functional contact form using PHP. This guide will take you through the steps of form creation, validation, and email handling, helping you integrate a seamless contact feature into your website. Perfect for beginners and those looking to enhance their PHP skills!

  • Rahit rao
    Rahit rao
    Reply

    Looking to create a fully functional contact form in PHP? This tutorial guides you through the step-by-step process of building a secure, reliable form for your website, complete with email integration, validation, and more. Perfect for beginners and experienced developers alike!

  • Neha Sharma
    Neha Sharma
    Reply

    This tutorial was spot on! The way you explained the process of building a functional contact form in PHP made it so easy to understand. The form validation and email handling tips were especially useful. Thank you for breaking it down in such a simple and practical way!

  • Amit Verma
    Amit Verma
    Reply

    Thank you for such a detailed guide on setting up a contact form in PHP! I’ve been struggling with making my form secure, and your step-by-step instructions really helped. The way you’ve explained validation and the importance of using a proper mailing system like PHPMailer was very insightful. Keep up the great work!

  • Priya Mehta
    Priya Mehta
    Reply

    Great post! I was looking for a simple yet secure way to create a contact form, and this tutorial was just what I needed. The use of PHPMailer makes it so much easier to handle emails properly. I also liked the part where you explained the reCAPTCHA integration. Thanks for this clear and practical guide!

  • Rohit Sharma
    Rohit Sharma
    Reply

    This is a fantastic tutorial! The detailed steps and the code structure are easy to follow, especially for someone like me who’s new to backend development. I appreciate how you explained the importance of sanitizing user inputs and implementing reCAPTCHA. This not only helps in creating a functional contact form but also makes it secure. Thanks a lot for sharing! Looking forward to more PHP tutorials.

Leave a Reply

Your email address will not be published. Required fields are marked *