繁体   English   中英

无法获得选择选项以通过电子邮件发送 php

[英]Cannot get select option to POST to email php

我正在尝试使用下面的代码将用户选择的选项的值发送到电子邮件地址,但该值在发送后没有出现在电子邮件中。

这是我的表格:

<!-- contact form -->
            <form action="plugins/contact-form.php" method="post" class="form contact-form">
                <div class="row clearfix">
                    <div class="col-1-3">
                        <label for="contact-name"><strong>Name</strong> (required)</label>
                        <input type="text" name="name" value="" id="contact-name" required>
                    </div>
                    <div class="col-1-3">
                        <label for="contact-email"><strong>Email</strong> (required)</label>
                        <input type="email" name="email" value="" id="contact-email" required>
                    </div>
                    <div class="col-1-3 last">
                        <label for="contact-www"><strong>Subject</strong></label>
                        <input type="text" name="subject" value="" id="contact-www">
                    </div>
                </div>
                <div class="row clearfix">
                    <div class="col-1-1">
                    <select name="feedback" id="feedback">
                    <option value="1">Volvo</option>
                    <option value="2">Saab</option>
                    <option value="3">Mercedes</option>
                    <option value="4">Audi</option>
                    </select>
                    </div>

                    <div class="col-1-1 last">
                        <label for="contact-message"><strong>Message</strong> (required)</label>
                        <textarea name="message" id="contact-message" cols="88" rows="6" required></textarea>
                    </div>
                </div>
                <input type="submit" value="Submit Comment" class="large invert">
                <div class="clear"></div>
            </form>
            <!-- /contact form -->

这是我的 .php:

<?php

// Get email address
require_once 'config.php';

// Ensures no one loads page and does simple spam check
if(isset($_POST['name']) && empty($_POST['spam-check'])) {

    // Declare our $errors variable we will be using later to store any errors
    $error = '';

    // Setup our basic variables
    $input_name = strip_tags($_POST['name']);
    $input_email = strip_tags($_POST['email']);
    $input_subject = strip_tags($_POST['subject']);
    $feedback = array(1 => "Volvo", 2 => "Saab", 3 => "Mercedes", 4 => "Audio");
    $feedback = $feedback[(int) $_POST['feedback']];
    $input_message = strip_tags($_POST['message']);

    // We'll check and see if any of the required fields are empty
    if(strlen($input_name) < 2) $error['name'] = 'Please enter your name.';
    if(strlen($input_message) < 5) $error['message'] = 'Please leave a message.';

    // Make sure the email is valid
    if(!filter_var($input_email, FILTER_VALIDATE_EMAIL) ) $error['email'] = 'Please enter a valid email address.';

    // Set a subject & check if custom subject exist
    $subject = "Message from $input_name";
    if($input_subject ) $subject .= ": $input_subject";

    $message = "$input_message\n";
    $message .= "\n---\nThis email was sent by contact form.";
    $feedback = "$feedback";

    // Now check to see if there are any errors 
    if(!$error) {

        // No errors, send mail using conditional to ensure it was sent
        if(mail($your_email_address, $subject, $message, "From: $input_email")) {
            echo '<p class="success">Your email has been sent!</p>';
        } else {
            echo '<p class="error">There was a problem sending your email!</p>';
        }

    } else {

        // Errors were found, output all errors to the user
        $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
        $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
        $response .= (isset($error['message'])) ? $error['message'] . "<br /> \n" : null;

        echo "<p class='warning'>$response</p>";

    }

} else {

    die('Direct access to this page is not allowed.');

}

我认为错误在这里:

$message = "$input_message\n";
$message .= "\n---\nThis email was sent by contact form.";
$feedback = "$feedback"; 

您应该将最后一行替换为:

$message .= $feedback;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM