Встроенный PHP Отправить почту не работает

PHP не моя сила, и когда меня попросили реализовать всплывающее окно с подпиской на модальный бюллетень, я съежился, потому что знал, что мне придется использовать PHP. Я весь день рыскал в интернете, пробуя разные вещи, но, похоже, я ничего не могу заставить работать, и я очень надеюсь, что кто-нибудь сможет указать мне правильное направление. Это очень просто, мне нужно только имя и адрес электронной почты, которые затем отправляются на указанный мной аккаунт. Я уверен, что это действительно просто, но из-за отсутствия опыта работы с PHP я совершенно заблудился в том, где я ошибаюсь. Мой код ниже.

<?php
if($_POST["submit"]) {
$recipient="my@emailaddress.com";
$subject="Newsletter Subscription";
$senderName=$_POST["name"];
$senderEmail=$_POST["email"];

$mailBody="Name: $senderName\nEmail: $senderEmail\n\nThis is a test!";

mail($recipient, $subject, $mailBody, "From: $senderName <$senderEmail>");

header('Location:http://www.urltoredirect.com/');
}
?>

<html>

<head>
<title></title>
</head>

<body>
<form method="post" action="sendmail.php">
<div class="rbm_input_txt">
<input type="name" name="name" placeholder="name" required>
</div>
<div class="rbm_input_txt">
<input type="email" name="email" placeholder="email" required>
</div>
<div class="rbm_form_submit">
<button type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
</div>
</form>
</body>

</html>

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

РЕДАКТИРОВАТЬ: Добавлен атрибут имени в мой код, как предложено ниже. Вопрос до сих пор не решен.

1

Решение

Вы проверяете, если $_POST['submit'] это правда, но ваша форма никогда не устанавливает это значение. Есть два изменения, которые вы можете сделать, чтобы это исправить:

  1. Для того, чтобы submit ключ, который будет присутствовать в вашем запросе, вам нужно назначить его в поле в форме. Скорее всего, вы захотите добавить его к кнопке отправки, что можно сделать, просто добавив параметр name к кнопке отправки:

    <button name="submit" type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
    
  2. Даже с учетом вышеуказанных изменений, $_POST['submit'] будет по-прежнему иметь значение false, поскольку его значение будет пустым. (Вы можете увидеть это в правилах для логические преобразования.Вы можете обойти это, проверив, установлен ли он, а не правдив:

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

Кроме того, вы можете просто искать другое поле, например name или же email, поскольку вы знаете, что оба эти поля будут установлены при отправке.

1

Другие решения

в тегах должно быть имя

  <div class="rbm_input_txt"><input type="name" placeholder="name" name="name" required><input type="email" placeholder="email" name="email``" required
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector