PHP电子邮件表单主题填充数组只起了一半作用

PHP电子邮件表单主题填充数组只起了一半作用,php,forms,email,Php,Forms,Email,我在我的网站上设置了两个表单,但它们使用的是相同的表单处理程序php文件,因此,我创建了代码,让它确定选择的主题或填充另一个表单的通用标题,出于某种原因,它可以正常工作,但现在我只能让数组的最后两项正常工作,第一个给我电子邮件中的空白主题,然后挂断表格。代码如下: PHP代码段: if(isset($_POST['Message-Topic'])) { $Topics = array ( "The Want List

我在我的网站上设置了两个表单,但它们使用的是相同的表单处理程序php文件,因此,我创建了代码,让它确定选择的主题或填充另一个表单的通用标题,出于某种原因,它可以正常工作,但现在我只能让数组的最后两项正常工作,第一个给我电子邮件中的空白主题,然后挂断表格。代码如下:

PHP代码段:

    if(isset($_POST['Message-Topic']))
        {
            $Topics = array (
                "The Want List" => "Want List",
                "Sell a Car" => "Sell a Car",
                "Consignment Program" => "Consignment Program",
                "General Information" => "General Inquiry");
            $Topic = $Topics[$_POST['Message-Topic']];
        } 
    elseif(isset($_POST['Subject'])) 
        {
            $Topic = "Buyer Inquiry";
        }

    $this->mailer->Subject = $Topic;
HTML代码段:

<select placeholder="Message Topic" name="Message-Topic" required>
    <option value="" disabled selected>Select your Topic</option>
    <option value="Want List">The Want List</option>
    <option value="Sell a Car">Sell a Car</option>
    <option value="Consignment Program">Consignment Program</option>
    <option value="General Information">General Information</option>
</select>

选择你的主题
通缉名单
卖车
寄售计划
一般资料

如果我还能提供什么,请告诉我,谢谢

在更正了第一个选项和它在
$Topics
数组中的对应选项之间的明显差异并稍微调整以删除空格后,它似乎可以很好地选择主题。当您执行
查找
以获取最终主题时,数组中的select&keys中的值是任意的-它们不需要与mailer应用程序中使用的值匹配,甚至不需要紧密复制。下面将以打印输出的方式停止,该输出说明如何为该邮件程序分配值

<?php

    $topic = false;


    if( $_SERVER['REQUEST_METHOD']=='POST'){
        if( isset( $_POST['Message-Topic'] ) ) {

            $choice=$_POST['Message-Topic'];

            $topics = array (
                "want_list"             => "The Want List",
                "sell_car"              => "Sell a Car",
                "consignment_program"   => "Consignment Program",
                "general_information"   => "General Inquiry"
            );

            $topic = array_key_exists( $choice, $topics ) ? $topics[ $choice ] : false;

        }elseif( empty( $_POST['Message-Topic'] ) ){
            $topic='General Enquiry';

        } elseif( isset( $_POST['Subject'] ) ) {
            $topic = "Buyer Inquiry";
        }

        #$this->mailer->Subject = $topic;
        exit( printf( '$this->mailer->Subject = "%s";',$topic ) );
    }

?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
    </head>
    <body>
        <form method='post'>
            <select name="Message-Topic" required>
                <option hidden disabled selected>Select your Topic
                <option value="want_list">The Want List
                <option value="sell_car">Sell a Car
                <option value="consignment_program">Consignment Program
                <option value="general_information">General Information
            </select>

            <input type='submit' />
        </form>
    </body>
</html>

这还不足以确定你的问题。你有
想要的列表
想要的列表
-它们不会匹配。谢谢你,我相对来说还不太熟悉PHP等等。我找到了一个非常全面和安全的表单,可以使用验证码和验证码,到目前为止还不错,但我缺乏知识和理解,所以我甚至没有意识到这个答案。谢谢@RamRaider的帮助和修复!我很高兴我能提供一个有用的答复,在路上帮助你。祝你在接下来的编码冒险中好运