PHP Форма не отправляет электронные письма на указанный адрес - PullRequest
0 голосов
/ 31 января 2020

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

<?php
include ('includes/config.php');
$error = array();
$name = '';
$email = '';
$telephone = '';
$message = '';

if (isset($_POST['Send']))
{
    // Assign form data
    $name = $_POST['Name'];
    $email = $_POST['Email'];
    $telephone = $_POST['Telephone'];
    $message = $_POST['Message'];

    // Check for errors
    if (empty($name)) { $error[] = 'Name'; }
    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { $error[] = 'Email'; }
    if (empty($telephone)) { $error[] = 'Telephone'; }
    if (empty($message)) { $error[] = 'Message'; }

    // If no errors
    if (sizeof($error) < 1) {
        // Build message
        $message = "Name: $name \n Email: $email \n Telephone: $telephone \n" . $message;

        // Send email
        mail('info@EXAMPLE.co.uk', "Example Message From $name", $message);

        // Reset form
        $name = '';
        $email = '';
        $telephone = '';
        $message = '';
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contact Us | <?=SITE_NAME?></title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include ('includes/header.php'); ?>
<div id="wrapper">
    <div id="main">
        <h1>Contact Us</h1>
        <?php
        if (sizeof($error) > 0)
        {
            echo '<p>There were errors for the following fields:</p><ul>';
            foreach ($error as $val) {
                echo "<li>$val</li>";
            }
            echo '</ul>';
        }
        else
        {
            echo '<p>Thank you for contacting us, we will get back to you shortly.</p>';
        }
        ?>
        <table cellpadding="5" cellspacing="0">
        <form method="post" action="">
            <tr>
                <td width="150"><label for="Name">Name: </label></td>
                <td><input type="text" name="Name" value="<?=$name?>" /></td>
            </tr>
            <tr>
                <td><label for="Email">Email: </label></td>
                <td><input type="text" name="Email" value="<?=$email?>" /></td>
            </tr>
            <tr>
                <td><label for="Telephone">Telephone: </label></td>
                <td><input type="text" name="Telephone" value="<?=$telephone?>" /></td>
            </tr>
            <tr>
                <td valign="top"><label for="Message">Message: </label></td>
                <td><textarea name="Message" rows="10" cols="55"><?=$message?></textarea></td>
            </tr>
            <tr>
                <td></td>
                <td><button type="submit" name="Send">Send Message</button></td>
            </tr>
        </form>
        </table>
    </div>
<?php include ('includes/footer.php'); ?>
</div>
</body>
</html>
...