Skip to content
Advertisement

I cannot seem to get my contact form working in HTML/PHP (new to PHP and completely stuck)

I am building a website and cannot get the contact form working on it’s designated page, when I click it I am supposed to see a url that says

index.php?=emailsent

However I am not getting this error, I am instead just getting sent to the file with the php code in it, this happens to be:

contactform.php

Anyway, here is the HTML code on the website that I am using

<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="styles.css">
    <link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">
    <script src="https://kit.fontawesome.com/1891ffb665.js" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap" rel="stylesheet">
    <title> Contact us  </title>
  </head>
<div class="background">
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
    <main>
      <div class="contact-form">
      <h1> Send us an Email </h1>
      <form class="contact-form" action="contactform.php" method="post">
        <input type="text" name="name" placeholder="Full name">
        <input type="text" name="email" placeholder="Email address">
        <input type="text" name="subject" placeholder="Subject">
        <textarea name="message" placeholder="Insert message"></textarea>
        <input type="submit" value="Send"></button>
      </form>
    </div>
    </main>
  </div>
  </body>
</html>

Here is my Php code that is on the contactform.php file.

    <?php
if (isset($_POST['send'])) {
  $name = $_POST['name'];
  $subject = $_POST['subject'];
  $mailFrom = $_POST['mail'];
  $message = $_POST['message'];

  $mailto = "digitalMEassistance@gmail.com";
  $headers = "From: ".$mailFrom;
  $txt = "You've received an Email from ".$name.".nn".$message;
  mail($mailto, $subject, $txt, $headers);
  header("Location: index.php?emailsent");
}
 ?>

Sorry if I have missed anything, I can repost with more details if so, just getting near my deadline and this roadblock has me stumped.

Advertisement

Answer

<input type="submit" value="Send" name="send"></input>

Explanation:

Since you’re checking in your php file, isset($_POST['send']) , you are not passing the name send to the request, that’s why the statement goes falsy

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement