Почему моя форма html / css / php отправляет мне электронное письмо только в том случае, если адрес электронной почты действителен? Я хочу электронную почту независимо - PullRequest
0 голосов
/ 27 марта 2020

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

<?php
    if($_POST["message"]){
        $recipient="foo@example.com";
        $subject="Customer Inquiry";
        $sender=$_POST["sender"];
        $senderEmail=$_POST["senderEmail"];
        $senderPhone=$_POST["senderPhone"];
        $message=$_POST["message"];

        $mailBody="Name: $sender\nEmail: $senderEmail\n Phone: $senderPhone\n\n$message";

        mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");
    }
?>
<!doctype html>

<html lang = "en">

<head> 
    <meta charset = "utf-8">

    <title>User Based Web Design</title>
    <!--title displayed in the tab, search-able title of the page-->

    <link rel = "stylesheet" href = "Style Sheets/Reset.css">
    <link rel = "stylesheet" href = "Style Sheets/Styles.css">
    <link rel = "stylesheet" href = "Style Sheets/Contact Styles.css">
    <link rel = "stylesheet" href = "Style Sheets/Navigation Styles.css">
    <link rel = "stylesheet" href = "Style Sheets/Footer Styles.css">

</head>
<body>
    <header> <!--start visible header section-->
        <h1>Jane Doe</h1>
        <h2>User Based Web Design</h2>
    </header> <!--end visible header section-->

    <div class="navbar">
        <?php include 'nav.html';?>
    </div>

    <article class ="main_contact">
    <!--Start article section. -->

        <h1>Contact Questionnaire</h1>

        <div class = "intro_text">
            <p>Please use the Contact Questionnaire below if you need to reach me for any reason.</p>

            <p>I take your privacy very seriously. I will never share any of your 
            information with anyone outside legal requirements. You will never be spammed or marketed
            to by any of my partners.</p>

        </div>

        <div class = "contact_form">

            <form name="form4" action="Contact Us.php" method="post">

                <input type = "hidden" name ="recipient" value ="1">
                <input type = "hidden" name ="subject" value ="Contact Survey">
                <input type = "hidden" name ="print_blank_fields" value ="1">
                <input type="hidden" name="_pid" value="154040">
                <input type="hidden" name="_fid" value="A7QPIZEA">

                <table  class ="contact_table">
                    <tbody>

                        <!--Row 1-->  
                            <tr>
                                <td class = "questions">Name:</td>
                                <td colspan = "6"><input name="sender" id="name" type="text" maxlength="30" class ="input_text_box required" title="Please type your name." required></td>
                            </tr>

                        <!--Row 2-->
                            <tr>
                                <td class = "questions">Email:</td>
                                <td colspan = "6"><input name="senderEmail" type="text" maxlength="30" class ="input_text_box"></td>
                            </tr>

                        <!--Row 3-->
                            <tr>
                                <td class = "questions">Phone:</td>
                                <td colspan = "6"><input name="senderPhone" type="text" id="textfield2" maxlength="30"class ="input_text_box"></td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 5-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 6-->
                            <tr>
                                <td class = "questions" rowspan="2">Preferred Method of <br />Contact:</td>
                                <td><input type="radio" name="Preferred Contact" value="radio" id="PreferredContact_0"></td>
                                <td colspan = "2" width = "30%">Phone</td>

                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>                     
                            </tr>

                        <!--Row 8-->
                            <tr>
                                <td><input type="radio" name="Preferred Contact" value="radio" id="PreferredContact_2"></td>
                                <td colspan = "2">Email</td>

                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>


                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 11-->
                            <tr>
                                <td class = "questions" rowspan="1">Would you like a response?</td>
                                <td><input type="radio" name="Response" value="radio" id="PreferredContact_2"></td>
                                <td colspan = "2">Yes</td>

                                <td>&nbsp;</td>
                                <td><input type="radio" name="Response" value="radio" id="PreferredContact_3"></td>
                                <td>No</td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 19-->
                            <tr>
                                <td class = "questions" rowspan="2">What would you like<br />to talk to me about?</td>
                                <td><input type="checkbox" name="checkbox3" id="checkbox3"></td>
                                <td colspan = "2">Existing Customer Inquiry</td>

                                <td>&nbsp;</td>
                                <td><input type="checkbox" name="checkbox4" id="checkbox4"></td>
                                <td>New Customer Inquiry</td>
                            </tr>


                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>


                        <!--Row 25-->
                            <tr>
                                <td class = "questions">Message Text: </td>
                                <td colspan = "6" style="text-align: left">
                                    <textarea rows = "4" name="message" maxlength="800" id="Comments" class ="input_text_box" required></textarea></td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 4-->  
                            <tr>
                                <td colspan = "7">&nbsp;</td>
                            </tr>

                        <!--Row 26-->
                            <tr>
                                <td><input name="submit" type="submit" id="submit" title="Submit" value="Submit" style = "float:left"></td>
                                <td colspan = "5">&nbsp;</td>
                                <td><input type="reset" name="reset" id="reset" value="Reset" style = "float:right"></td>
                            </tr>
                    </tbody>
                </table>
            </form> 
        </div>      

    </article>
    <!--end article section-->
    <br clear = "all"> <!--clear all formatting-->

    <div class="footer">
        <?php include 'footer.html';?>
    </div>
</body>
<!--End body section-->

</html>
<!--end html here-->

1 Ответ

1 голос
/ 27 марта 2020

Прежде всего.! все ваши файлы стилей и папки имеют пробелы в именах файлов и именах папок href = "Style Sheets/Contact Styles.css".

Необходимо добавить правильное имя папки и имя файла без пробелов, например:

<link rel = "stylesheet" href ="foldername/filename.css">

Ваш php коды в порядке, они должны работать без каких-либо проблем, если на сервере разрешена функция mail(), я добавил предупреждение, чтобы сообщать информацию при отправке почты, и исправил некоторые ошибки.

Вам необходимо выполнить некоторые проверки, чтобы проверьте правильность введенных пользователем данных перед отправкой электронной почты (см. комментарий в кодах)

<?php
if(isset($_POST["submit"])){
    $recipient = "laurapohl18@gmail.com";
    $subject = "Customer Inquiry";
    $sender = $_POST["sender"];
    $senderEmail = $_POST["senderEmail"];
    $senderPhone = $_POST["senderPhone"];
    $message = $_POST["message"];

    //Do some validations here to see if you get correct infos from form

    $mailBody = "Name: $sender\n Email: $senderEmail\n Phone: $senderPhone\n Message: $message";
    mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");
    echo '<script type="text/javascript">alert("Mail has been sent to ' . $recipient . '");</script>';
}
?>

Ваше имя файла в действии формы имеет пробел между Contact Us.php, поэтому оно не будет работать, убедитесь, что ваш файл имя правильное и не имеет пробелов.

Ваша форма должна выглядеть так, как используется заполнитель во входных данных.

  <form name="form4" action="ContactUs.php" method="post">
    <input type="text" name="sender" placeholder="Your name..">
    <input type="email" name="senderEmail" placeholder="Your email..">
    <input type="text" name="senderPhone" placeholder="Your phone..">
    <textarea name="message" placeholder="Write something.." style="height:200px"></textarea>
    <input type="submit" name="submit" value="Submit">
  </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...