Отправить данные контактной формы на электронную почту - PullRequest
0 голосов
/ 20 мая 2019

Моя цель - создать контактную форму, где пользователь будет вводить свое имя, адрес электронной почты и сообщение.В тот момент, когда они нажимают «Отправить», я, как администратор, получаю электронное письмо со всей информацией, которая была введена ранее.Сейчас электронное письмо отправлено, но оно пустое, например:

Ответ:
Имя пользователя:
Электронная почта пользователя
Сообщение пользователя

Кроме того, когда я нажимаю «Отправить сообщение», он дает мне ту же форму, но без CSS, должна быть ошибка кода, которую я не знаю, что это такое.

// Form contactos.php
<div class="col-md-7 mb-5 site-animate">
  <form action="index.php?cmd=contform" method="post">
    <div class="form-group">
      <label for="name" class="sr-only">Name</label>
      <input type="text" class="form-control" id="NomeM" placeholder="Nome">
    </div>
    <div class="form-group">
      <label for="email" class="sr-only">Email</label>
      <input type="text" class="form-control" id="EmailMen" placeholder="Email">
    </div>
    <div class="form-group">
      <label for="message" class="sr-only">Messagem</label>
      <textarea name="message" id="Mensagem" cols="30" rows="10" class="form-control" placeholder="Escreva a sua mensagem"></textarea>
    </div>
    <div class="form-group">
      <input type="submit" name="submit" class="btn btn-primary btn-lg" value="Enviar Mensagem">
    </div>
  </form>
</div>
//File contform.php

<?php
$sql="select * from Mensagem ";
$res=$lig->query($sql);
$lin = $res->fetch_array();


$NomeM = $_POST['NomeM'];
$Email = $_POST['EmailMen'];
$Mensagem = $_POST['Mensagem'];


$email_from = 'admin03@happygreen.pt';

$email_subject = "New Form Submission";

$email_body = "User Name:" .$lin['NomeM']."\n".
"User Email:".$lin['EmailMen']."\n".
"User Message:".$lin['Mensagem']."\n";


$to = "filipajoao1933@gmail.com";

$headers = "De: $email_from \r\n";

$headers .= "Responda a: ".$lin['EmailMen']."\r\n";

mail($to,$email_subject,$email_body,$headers);

header("Location: Contactos/contactos.php");

?>

1 Ответ

0 голосов
/ 20 мая 2019

Полям формы (input, select, textarea) требуется атрибут name, на который вы можете ссылаться в PHP, у вас есть только идентификаторы.Кроме того, атрибут for в label s ссылается на id поля формы:

// Form contactos.php
<div class="col-md-7 mb-5 site-animate">
    <form action="index.php?cmd=contform" method="post">
      <div class="form-group">
        <label for="NomeM" class="sr-only">Name</label>
        <input type="text" class="form-control" name="NomeM" id="NomeM" placeholder="Nome">
      </div>
      <div class="form-group">
        <label for="EmailMen" class="sr-only">Email</label>
        <input type="text" class="form-control" id="EmailMen" name="EmailMen" placeholder="Email">
      </div>
      <div class="form-group">
        <label for="Mensagem" class="sr-only">Messagem</label>
        <textarea name="Mensagem" id="Mensagem" cols="30" rows="10" class="form-control" placeholder="Escreva a sua mensagem"></textarea>
      </div>
      <div class="form-group">
        <input type="submit" name="submit" class="btn btn-primary btn-lg" value="Enviar Mensagem">
      </div>
  </form>
</div>

И ваш $email_body должен быть:

$email_body = "User Name:" .$NomeM."\n".
"User Email:".$EmailMen."\n".
"User Message:".$Mensagem."\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...