Submit button in a form not sending data?

Viewed 46

I want to send my html form data to my database which I have created using XAMPP. But, for some reason, the submit button is not working.

This is my html code:-

<form id="contact" action="contact.php" method="post" class="php-email-form">
              <div class="row">
                <fieldset class="col-md-6 form-group">
                  <input type="text" name="name2" class="form-control" id="name" placeholder="Your Name" required>
                </fieldset>
                <fieldset class="col-md-6 form-group mt-3 mt-md-0">
                  <input type="email" class="form-control" name="email2" id="email" placeholder="Your Email" required>
                </fieldset>
              </div>
              <fieldset class="form-group mt-3">
                <input type="text" class="form-control" name="phone2" id="phone" placeholder="Your Phone Number" required>
              </fieldset>
              <fieldset class="form-group mt-3">
                <input type="text" class="form-control" name="subject2" id="subject" placeholder="Subject" required>
              </fieldset>
              <fieldset class="form-group mt-3">
                <textarea class="form-control" name="message2" rows="5" placeholder="Message" required></textarea>
              </fieldset>
              <fieldset class="text-center">
                <button type="submit" name="submit" id="contact-submit">Send Message</button>
              </fieldset>
            </form>

This is my contact.php code:-

    <?php
 
    $name = $_POST['name2']; 
    $fromEmail = $_POST['email2'];
    $phone = $_POST['phone2'];
    $subject = $_POST['subject2'];  
    $message = $_POST['message2'];

    //Database Connection
    $conn = new mysqli('localhost','root','','contactus');
    if ($conn->connect_error) {
      die('Connection Failed : '.$conn->connect_error);
    } else {
      $stmt = $conn->prepare("insert into contact(Name, Email, Phone No., Subject, Message) 
      values(?,?,?,?,?)");
      $stmt->bind_param("ssiss",$name,$fromEmail,$phone,$subject,$message);
      $execval = $stmt->execute();
      echo $execval; 
      echo "Sent Successfully";
      $stmt->close();
      $conn->close();
    } 

?>
2 Answers

In order for the system to properly process the data field Phone No. (which contains a space character) in db operation, Please enclose it by backticks in your insert query prepared statement

Change
 $stmt = $conn->prepare("insert into contact(Name, Email, Phone No., Subject, Message) .....

to

 $stmt = $conn->prepare("insert into contact(Name, Email, `Phone No.`, Subject, Message) .....

Your submit button ID is different than what is identified in the form.

<form id="contact" action="contact.php" method="post" class="php-email-form">
 <button type="submit" name="submit" id="contact">Send Message</button>
Related