简体   繁体   中英

HTML/PHP form not working, Submit button doing nothing?

so I´ve previously done forms and I´ve never had any problems, but this time something is wrong. Hope someone can help me soon. Here´s the code (HTML form first):

<form action="includes/mensaje.inc.php" method="post" class="contactForm">
      <div class="col-md-6 col-sm-6 col-xs-12 left">
        <div class="form-group">
          <input type="text" class="form-control form" name="name" placeholder="Your Name" data-msg="Introduzca al meno 4 caracteres" />
          <input type="email" class="form-control" name="email" placeholder="Your Email" data-msg="Por favor introduzca un Email válido" />
          <input type="text" class="form-control" name="subject" placeholder="Subject" data-msg="Mínimo 4 caracteres de mensaje" />
        </div>
      </div>

      <div class="col-md-6 col-sm-6 col-xs-12 right">
        <div class="form-group">
          <textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Por favor introduzca información aquí" placeholder="Message"></textarea>
          <div class="validation"></div>
        </div>
      </div>

      <div class="col-xs-12">
        <button name="submit" type="submit" class="btn btn-block btn-submit">
        ENVIAR <i class="fa fa-arrow-right"></i></button>
      </div>

</form>

Here´s the PHP:

<?php
session_start();

if (isset($_POST['submit'])) {
    include_once 'dbh.inc.php';

    $name = mysqli_real_escape_string($conn, $_POST['name']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $subject = mysqli_real_escape_string($conn, $_POST['subject']);
    $message = mysqli_real_escape_string($conn, $_POST['message']);

    $sql = "INSERT INTO mensajes 
        (name, email, subject, message) 
        VALUES ('$name', '$email', '$subject', '$message')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
?>

There is no $_POST['submit'] name on the form. You need to change the if validation from

if (isset($_POST['submit'])) {

to

if (!empty($_POST)) {


<?php
session_start();

if (isset($_POST['submit'])) {
    include_once 'dbh.inc.php';

    $name = mysqli_real_escape_string($conn, $_POST['name']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $subject = mysqli_real_escape_string($conn, $_POST['subject']);
    $message = mysqli_real_escape_string($conn, $_POST['message']);

    $sql = "INSERT INTO mensajes 
        (name, email, subject, message) 
        VALUES ('$name', '$email', '$subject', '$message')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM