PHP, форма отправки по электронной почте - PullRequest
0 голосов
/ 28 августа 2018

Я искал и искал ответ и не могу найти ответ на мою конкретную проблему. Я просто пытаюсь отправить электронное письмо, когда пользователь заполняет страницу контактов и нажимает кнопку "Отправить".

Ниже приведен код для формы.

<form method="post" action="contactRob.php">
    <label for="name">First Name:</label>
    <input type="text" name="name" id="name" />                         
    <label for="lastName">Last Name:</label>
    <input type="text" name="lastName" id="lastName" />
    <label for="email">Email:</label>
    <input type="text" name="email" id="email" />
    <label for="message">Message:</label><br />
    <textarea name="message" rows="20" cols="20" id="message"></textarea>
    <label>*What is 2+2? (Anti-spam)</label>
    <input name="human" placeholder="Type Here">

    <input type="submit" name="submit" value="Submit" class="submit-button" />

</form>

А ниже приведен PHP, который я использую.

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = $_POST['lastName']; 
    $to = 'juliansilvestri92@gmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit'] && $human == '4') {         
        if (mail ($to, $subject, $body, $from)) { 
           echo '<p>Your message has been sent!</p>';
        } else { 
           echo '<p>Something went wrong, go back and try again!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '4') {
        echo '<p>You answered the anti-spam question incorrectly!</p>';
    }
?>

Чего мне не хватает? В настоящее время этот сайт находится на домене размещенного сервера. Когда я нажимаю кнопку «Отправить», я получаю сообщение об ошибке «что-то пошло не так».

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Ваши имена - первая прописная, а результаты - нет.

$message = $_POST['email']; 
<input type="text" name="Email" id="Email" />

сделать оба строчных. Тогда может помочь отображение $ body, посмотреть, совпадают ли данные с введенными вами, закомментировать часть почтовой программы, посмотреть, произошла ли ошибка от почты или от самого почтового DOM. Если проблема с почтовым программным обеспечением вызывает ошибку, прочитайте немного о почтовом программном обеспечении, если это не поможет.

и ваш адрес неверен.

$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$txt,$headers);

Ваше имя должно выглядеть следующим образом:

$from = "From: ".$_POST['email']."\r\n CC: ".$_POST['lastName']; 

или что-то в этом роде.

Есть все готовые похожие темы по этому поводу, и есть честный огромный комментарий, вы не пропустите это. Функция PHP mail не завершает отправку электронной почты Делайте то, что говорит вам этот комментарий, и вы, скорее всего, решите или поймете проблему.

Удачи ..

0 голосов
/ 28 августа 2018

Большинство серверов не позволяют вам отправлять электронную почту, используя только функцию php mail, используя функцию php mailer для отправки почты с любого локального сервера разработки / живого веб-сервера.

https://github.com/PHPMailer/PHPMailer

также для отправки почты по умолчанию вы можете использовать эти параметры

$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$txt,$headers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...