电子邮件阵列不显示相应的文本

时间:2014-02-05 19:39:22

标签: php arrays email

请有人告诉我,如果我有这样的阵列:

$subject = array(); 
    $subject[1] = "legatoria";
    $subject[2] = "restauro";
    $subject[3] = "grafica";
    $subject[4] = "stampa";
    $subject[5] = "amministrazione";
    $subject[6] = "altro";
    $subjectindex = $_REQUEST['subject'];
    if ($subjectindex == 0 || !isset($_REQUEST['subject'])) die ("error message");
    else $subject = $subject[$subjectindex];

并且邮件发送如下:

$mail->Body     .= "message has subject: ".$_POST['subject']."\n";

为什么用户发送的电子邮件中的主题显示为数字(例如4)而不是相应的文本(即印章)?

2 个答案:

答案 0 :(得分:0)

$_POST['subject']是指带有name="subject"的HTML表单返回的确切数据。如果您的表单正在发送与$subject索引相对应的数字,并且您想要打印数组值,则需要使用:

$subject[$_POST['subject']]

这样:

$mail->Body .= "message has subject: ".$subject[$_POST['subject']]."\n";

答案 1 :(得分:0)

我正在关闭这篇文章。正确的解决方案只是u_mulder

建议的解决方案
  

“另外根据提供的代码$ subject已经根据$ _REQUEST ['subject']设置了一个值。所以$ subject本身也可以工作”

谢谢