FridoxFL
FridoxFL

Reputation: 67

My PHP/HTML form doesn't work

I have a contact form in my website and it doesn't work properly. I get the email but the email it's empty, I don't get the information from the form.

the part of the html in my index.html

<form role="form" form name="contactform" method="post" action="send_form_email.php"> 
                 <div class="form-group">
                        <label>Nombre</label> <input type="text" name="nombre" class="form-control" placeholder="Introduce tu nombre" >
                  </div>
                 <div class="form-group">
                        <label>Apellidos</label> <input type="text" name="apellidos" class="form-control" placeholder="Introduce tus apellidos" >
                  </div>
                 <div class="form-group">
                        <label>Email</label> <input type="emal" name="email" class="form-control" placeholder="Introduce tu email" >
                  </div>
                 <div class="form-group">
                        <label>Telefono</label> <input type="text" name="telefono" class="form-control" placeholder="Introduce tu telefono" >
                  </div>

                  <div class="form-group">
                        <label>Mensaje</label> <textarea name="mensaje" class="form-control" rows="7"></textarea>
                  </div>

                     <button type="submit" class="btn btn-default" value="Submit">   <a href="send_form_email.php">Enviar</a>
                 </form>

                </div>

the part of the php file called "send_form_email.php"

    <?php
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$formcontent=" $nombre $apellidos $email $telefono $mensaje";
$recipient = "[email protected]";
$subject = "Subject from $nombre";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You! We will get back to you as soon as possible!" . " -" . "<a href='./index.php'> Back to site</a>";
?>

Upvotes: 0

Views: 1790

Answers (3)

MSD
MSD

Reputation: 313

Perhaps I can help you with an example I used myself:

The HTML contact Form:

            <div class="row">

                <!-- Content -->
                    <div id="content" class="8u skel-cell-mainContent">
                        <section class="12u">

                            <header>
                                <h2>Contact</h2>
                            </header>

                         <form method="post" action="mail.php">
                        <div class="row half">
                            <div class="6u">
                                <input name="subject" placeholder="Name" type="text" class="text" />
                            </div>
                            <div class="6u">
                                <input name='email' placeholder="Email" type="text" class="text" />
                            </div>
                        </div>
                        <div class="row half">
                            <div class="12u">
                                <textarea name="message" placeholder="Message"></textarea>
                            </div>
                        </div>
                        <div class="row half">
                            <div class="12u">
                                <!--a href="mail.php" class="button">Submit</a-->
                                <input type="submit" class="button" value="Submit">
                            </div>
                        </div>
                    </form>

                        </section>

                    </div>

The PHP processing of the form:

<?php 
                //mail(to,subject,message,headers,parameters)


                    // Check if the "from" input field is filled out
                    //if (isset($_POST['from'])) 
                    //{}
                      $to = '[email protected]'; // my email address
                      $subject = $_POST['subject']; //name client

                      $feedback = 'thank you, we will reply soon.';
                      $header  = $_POST['email']; //Email client

                      $message = $_POST['message'];
                      $message = wordwrap($message, 70);

                      $message = <<<EMAIL
Dear (YOUR WEBSITE NAME HERE),

My name is: $subject

$message

Email Client: $header


EMAIL;





                      // send mail
                      if($_POST){ 
                      mail($to, $subject, $message, $header);

                      echo $feedback;
                                }





?>

Remember very carefully, the part from Dear... to EMAIL has to be against the left side of the screen, without any tabs or spaces. Else it won't work!

Hopefully you can use this to your success :)

Upvotes: 0

iosley
iosley

Reputation: 1

Try this

<?php
$nombre      = $_POST['nombre'];
$apellidos   = $_POST['apellidos'];
$telefono    = $_POST['telefono'];
$email       = $_POST['email'];
$mensaje     = $_POST['mensaje'];
$formcontent = "{$nombre} {$apellidos} {$email} {$telefono} {$mensaje}";
$recipient   = "[email protected]";
$subject     = "Subject from $nombre";

if(PHP_OS == "Linux" || PHP_OS == "Darwin") $new_line = "\n"; /* if Linux or Mac */
elseif(PHP_OS == "WINNT") $new_line = "\r\n"; /* if Windows */
$mailheader  = "MIME-Version: 1.1" . $new_line;
$mailheader .= "Content-type: text/html; charset=utf-8" . $new_line;
$mailheader .= "From: ".$recipient.$new_line;
$mailheader .= "Return-Path: " . $recipient . $new_line;
$mailheader .= "Reply-To: " . $recipient . $new_line;

mail($recipient, $subject, $formcontent, $mailheader, "-r" . $recipient) or die("Error!");
echo "Thank You! We will get back to you as soon as possible!" . " -" . "<a href='./index.php'> Back to site</a>";
?>

Upvotes: 0

itachi
itachi

Reputation: 6393

<input type="emal" name="email" class="form-control" placeholder="Introduce tu email" > change to

<input type="email" name="email" class="form-control" placeholder="Introduce tu email" >

you have typo in type attribute.

Upvotes: 2

Related Questions