Я пытаюсь разрешить людям, которые посещают мой сайт, подписываться, заполняя короткую форму и имея на сайте отправку мне электронной почты с информацией, но на данный момент форма даже не представит информацию. Некоторая помощь будет принята с благодарностью.
<form id="ContactForm" action="mail/MailHandler.php"> <div class="success">Form submitted!<br><strong>Look forward to our next Monthly Mailer.</strong></div> <fieldset> <div class="wrapper"> <label class="name"> <span class="bg"><input type="text" value="Name:" class="input"></span> <span class="error">*This is not a valid name.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="wrapper"> <label class="email"> <span class="bg"><input type="text" value="E-mail:" class="input"></span> <span class="error">*This is not a valid email address.</span> <span class="empty">*This field is required.</span> </label> </div> <div class="btns"> <a href="mail/MailHandler.php" class="button1" data-type="submit"> <span><strong>submit</strong></span> <span class="active"><strong>submit</strong></span> </a> </div> </fieldset> </form>
с PHP следующим образом
<?php $owner_email = $_POST["myemail@address.com"]; $headers = 'From:' . $_POST["email"]; $subject = 'Monthly Mailer Subscriber ' . $_POST["name"]; $messageBody = ""; $messageBody .= '<p>' . $_POST["name"] . ' would like to be subscribed to your Monthly Mailer!</p>' . "\n"; $messageBody .= '<br>' . "\n"; $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n"; $messageBody .= '<br>' . "\n"; try{ if(!mail($owner_email, $subject, $messageBody, $headers)){ throw new Exception('mail failed'); }else{ echo 'mail sent'; } }catch(Exception $e){ echo $e->getMessage() ."\n"; } ?>
ЗАДАЧА РЕШЕНА! Проблема заключалась в том, что у моих входов не было имен и синтаксиса $ owner_email = $ _POST ["myemail@address.com"]; должен был быть $ owner_email = 'myemail@address.com';
Проблема № 1
Вы ищете переменные POST
но отправляете их через GET
так как вы никогда явно не устанавливали его в POST
. Чтобы решить это изменение:
<form id="ContactForm" action="mail/MailHandler.php">
чтобы:
<form id="ContactForm" action="mail/MailHandler.php" method="POST">
Проблема №2
Вы забыли указать свои входные имена:
<input type="text" value="Name:" class="input">
должно быть:
<input type="text" value="Name:" name="name" class="input">
Проблема №3
Вам не хватает кнопки отправки:
<input type="submit" value="submit">
Это должно заменить:
<a href="mail/MailHandler.php" class="button1" data-type="submit"> <span><strong>submit</strong></span> <span class="active"><strong>submit</strong></span> </a>
Вы не устанавливаете свои имена элементов формы.
Вам необходимо изменить свои входы следующим образом:
<input type="text" value="E-mail:" name="email" class="input"> <input type="text" value="Name:" name="name" class="input">