Попытка связать форму и файл php вместе.Не получаю письмо.Что я делаю неправильно? - PullRequest
0 голосов
/ 11 декабря 2018
<div class="col-lg-12 col-md-12 offset-lg-1">
                <div class="impl_con_form">
                    <div class="col-lg-12 col-md-12">
                        <h1>get in touch</h1>
                    </div>
                    <form action="sendmail.php" method="POST" class="contact-form" novalidate="novalidate">
                        <div class="col-lg-12 col-md-12">
                            <div class="form-group">
                                <input type="text" name="first_name" class="form-control require" placeholder="YOUR NAME">
                            </div>
                        </div>
                        <div class="col-lg-12 col-md-12">
                            <div class="form-group">
                                <input type="text" name="email" class="form-control require" placeholder="YOUR EMAIL" data-valid="email" data-error="Email should be valid.">
                            </div>
                        </div>
                        <div class="col-lg-12 col-md-12">
                            <div class="form-group">
                                <input type="text" name="subject" class="form-control" placeholder="SUBJECT">
                            </div>
                        </div>
                        <div class="col-lg-12 col-md-12">
                            <div class="form-group">
                                <textarea name="message" class="form-control" placeholder="YOUR MESSAGE"></textarea>
                            </div>
                        </div>
                        <div class="response"></div>
                        <div class="col-lg-12 col-md-12">
                            <input type="hidden" name="form_type" value="contact">
                            <button type="submit" data-type="submit" name="submit" value="submit">Submit</button>
                        </div>
                    </form>
                </div>
            </div>

Код выше является контактной формой для одного из моих практических проектов, над которым я работаю.Я пытаюсь связать его с моим файлом sendmail.php и отправить на мой текущий адрес электронной почты, но мне не повезло.

  <?php
if( isset($_POST['submit']))

$to = "jamie@sharpsdigital.co.uk";

$sub = "Contact Form Enquiry";

$headers  = "From: Star Tyres <jamie@sharpsdigital.co.uk>"."\r\n";
$headers .= "Reply-To: ".$email." \r\n";
$headers .= "X-Mailer: PHP/". phpversion()."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = '<h4>New Contact Form Enquiry : </h4>
            <p>Name: '.$first_name.'</p>
            <p>Email: '.$email.'</p>
            <p>Subject: '.$subject.'</p>
            <p>Message: '.$message.'</p><br>
            ';

$mail = mail($to, $sub, $message, $headers, 'jamie@sharpsdigital.co.uk');

if ( $mail)
{
    header('Location: contact.html?var=sent');
}
else
{
    /* error_reporting(-1);
    ini_set('display_errors', 'On');
    echo 'error';
    print_r(error_get_last()); */
    header('Location: contact.html?var=error');
}

Это мой php, я связал оба с использованиемдействие = "sendmail.php" и использование метода post.Однако, когда я нажимаю кнопку и отправляю, кажется, что она переходит в * .com / sendmail.php, и я не получаю письмо.Что я делаю не так?

ОБНОВЛЕНИЕ ==============================

ПослеНесколько комментариев, которые я попытался настроить несколько вещей.Теперь я получаю команду echo обратно, как только я нажму кнопку отправки, но ничего больше.

<?php
  extract($_POST);
  echo "Made it to sendmail.php";
  if( isset($_POST['submit']))
  {



$mailTo = "jamie@sharpsdigital.co.uk";

$sub = "Contact Form Enquiry";

$headers  = "From: Star Tyres <jamie@sharpsdigital.co.uk>"."\r\n";
$headers .= "Reply-To: ".$email." \r\n";
$headers .= "X-Mailer: PHP/". phpversion()."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = '<h4>New Contact Form Enquiry : </h4>
            <p>Name: '.$first_name.'</p>
            <p>Email: '.$email.'</p>
            <p>Subject: '.$sub.'</p>
            <p>Message: '.$message.'</p><br>
            ';

$mail = mail($to, $sub, $message, $headers, 'jamie@sharpsdigital.co.uk');



 }
 ?>

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Измените свою кнопку, чтобы отправить форму этому:

<input type="button" name="submit" value="Submit">

input - это элемент формы, кнопка №.Имя - это то, что вы будете искать в php ($_POST['submit'])

Атрибут value - это то, что будет отображаться внутри кнопки

0 голосов
/ 11 декабря 2018

HTH

<?php
  extract($_POST);

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


$email = $_POST['email'];
$first_name = $_POST['first_name'];
$to = "jamie@sharpsdigital.co.uk";

$sub = "Contact Form Enquiry";


$headers  = "From: Star Tyres <jamie@sharpsdigital.co.uk>"."\r\n";
$headers .= "Reply-To: ".$email." \r\n";
$headers .= "X-Mailer: PHP/". phpversion()."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = '<h4>New Contact Form Enquiry : </h4>
            <p>Name: '.$first_name.'</p>
            <p>Email: '.$email.'</p>
            <p>Subject: '.$sub.'</p>
            <p>Message: '.$message.'</p><br>
            ';

$mail = mail($to, $sub, $message, $headers, 'jamie@sharpsdigital.co.uk');



 }

?>

или, проще:

<?php
$to      = 'jamie@sharpsdigital.co.uk';
$subject = 'Contact Form Enquiry';
$message = '<h4>New Contact Form Enquiry : </h4>
            <p>Name: '.$_POST['first_name'].'</p>
            <p>Email: '.$_POST['email'].'</p>
            <p>Subject: '.$subject .'</p>
            <p>Message: '.$_POST['message'].'</p><br>
            ';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: ".$_POST['email']' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

ЦЕЛЬ ИСПЫТАНИЯ:

создать новый файл testemail.php и ввести этот код:

<?php
$to      = 'jamie@sharpsdigital.co.uk';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: no-reply@domain.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?> 

затем перейдите на страницу и посмотрите, получили ли вы электронное письмо после ...

...