3

我有一个 HTML 表单,其中包含一些数组,这些数组由它们的名称标签定义,它们后面有 []。我正在尝试在一封 PHP 电子邮件中发送所有这些数组值。我知道 var_dump 会在屏幕上显示这些数组值,但 var_dump 似乎无法在电子邮件中发送这些值。非常感谢任何指导。谢谢,下面是我的。

在 html 表单中,字段名称和电子邮件是名称标签后带有“[]”的数组,单个表单最多可以提交 15 个。下面是我试图捕获这些值的 PHP 代码。

$to = "$Eemail";
$subject = "Credential Request";
$message = var_dump($name, $email);
$from = "EmailAddres@email.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);

电子邮件发送良好,但由于我在 $message 中尝试了许多选项,我要么收到一封空电子邮件,要么收到 NULL 回复。

4

4 回答 4

1

var_dump只是一个打印数组的函数,与print_r您的情况非常相似,您需要为$message变量分配一个字符串

我想$name$email都是具有相同数量值的数组,你可以只使用一个for循环

for($i=0; $i<count($name); $i++)
{
    $to = "$Eemail";
    $subject = "Credential Request";
    $message = 'name: ' . $name[$i] . ' email: ' . $email[$i];
    $from = "EmailAddres@email.com";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
}

正如所指出的,您似乎需要发送一封包含所有数组值的电子邮件,因此只需循环并连接所有数组值

$to = "$Eemail";
$subject = "Credential Request";
$message = '';
for($i=0; $i<count($name); $i++)
{
     $message .= 'name: ' . $name[$i] . ' email: ' . $email[$i] . "\n";
}
$from = "EmailAddres@email.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
于 2013-06-02T16:37:10.340 回答
0

var_dump不返回任何东西。因此,将其结果分配给$message将导致一个空变量,进而导致您的邮件为空。

相反,如果您想将结果作为字符串,您可以使用以下代码:

$message = print_r($name, true) . "\n" . print_r($email, true);
于 2013-06-02T16:37:02.307 回答
0

我找到了我要找的东西。具有多个数组的 foreach 循环。

$to = "$Eemail";
$subject = "Credential Request"; 
$message = '';
$message .= '<html><body>';
        $message .= "<h2>Credential Requests</h2>";
        $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';

foreach($_POST['name'] as $key => $something) { 
$email = $_POST['email'][$key];
$position = $_POST['position'][$key];
        $message .= "<tr><td> $something</td><td> $email </td><td> $position</td></tr>";
}
        $message .= "</table>"; 
$from = "Credentials@UHSAA.org";
$headers = "From: " . $from . "\r\n";
        $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to,$subject,$message,$headers);
于 2013-06-03T21:23:27.627 回答
0

var_dump只向输出缓冲区输出一些东西。您可能正在寻找这样的东西:

$message = implode(" ", $name) . " " . implode(" ", $email);
于 2013-06-02T16:39:04.420 回答