【发布时间】:2017-08-08 15:54:57
【问题描述】:
所以我还在学习 PHP,我有一个包含 4 个数组的表单。我正在尝试将阵列与其他一些信息一起发送到我的电子邮件中。我不断收到的电子邮件说“数组,数组”(然后其余信息正确显示)。我无法弄清楚我错过了什么。
我可以让家长信息正确显示,但我一直坚持让孩子信息翻译成电子邮件。
if (isset($_POST['submit'])){
// Parent Info
$pFname = mysql_escape_string($_POST['pFname']);
$pLname = mysql_escape_string($_POST['pLname']);
$email = mysql_escape_string($_POST['pEmail']);
$street = mysql_escape_string($_POST['street']);
$city = mysql_escape_string($_POST['city']);
$state = mysql_escape_string($_POST['state']);
$zip = mysql_escape_string($_POST['zip']);
// Child Info
$name = mysql_escape_string($_POST['Name']);
$birthday = mysql_escape_string($_POST['Birthday']);
$gender = mysql_escape_string($_POST['Gender']);
$rel = mysql_escape_string($_POST['Rel']);
$msg1 = "From: " . ' ' . $pFname . ' ' . $pLname . ' ' . ' ' . $pEmail
. ' ' . ' ';
foreach ($_POST['Name'] as $names){
$name = $names;
}
foreach ($_POST['Birthday'] as $birthdays){
$birthday = $birthdays;
}
foreach ($_POST['Gender'] as $genders){
$gender = $genders;
}
foreach ($_POST['Rel'] as $rels) {
$rel = $rels;
}
$msg = "Name: " . " " . $name . " - " . $gender . "Birthday: " .
$birthday . " " . "Relationship: " . $rel . "\n\r";
$to = 'joe@joe.com;
$subject = 'Birthday Club Application';
$msg = $msg . "\r\n";
$msg .= "First Name: " . $pFname . "\r\n";
$msg .= "Last Name: " . $pLname . "\r\n";
$msg .= "Email: " . $email . "\r\n";
$msg .= "Street: " . $street . "\r\n";
$msg .= "City: " . $city . "\r\n";
$msg .= "State: " . $state . "\r\n";
$msg .= "Zip: " . $zip . "\r\n";
$headers = 'From: ' . $pEmail . "\r\n";
$headers1 = 'From: mycompany.com';
/*$goto_after_mail = "birthdayClub.php";*/
mail($to, $subject, $msg, $msg1, $headers);
header("Location: " . $goto_after_mail);
}
这是 HTML:
<form id="parent-info" method="post" action="<?php echo
htmlspecialchars($_SERVER[" PHP_SELF "])?>">
<h1>Guardian Information</h1>
<h4>*All fields required*</h4>
<input type="text" name="pFname" class="parent-entry" placeholder="First Name:" >
<input type="text" name="pLname" class="parent-entry" placeholder="Last Name:" >
<input type="text" name="pEmail" class="parent-entry" placeholder="Email:" >
<input type="text" name="street" class="parent-entry" placeholder="Street Address:" >
<input type="text" name="city" class="parent-entry" placeholder="City:" >
<input type="text" name="state" class="parent-entry" placeholder="State:" >
<input type="text" name="zip" class="parent-entry" placeholder="Zip Code:" >
<br>
<h2>Child Information</h2>
<h4>*All fields required*</h4>
<div class="child-form">
<input type="text" name="Name[]" placeholder="Childs Name:" class="parent-entry" value " "; >
<input type="text" name="Gender[]" placeholder="Gender:" class="parent-entry" value " ";>
<input type="text" name="Birthday[]" placeholder="Ex: 1/1/01:" class="parent-entry" value " "; >
<input type="text" name="Rel[]" placeholder="Relation to child:" class="parent-entry" value " ";>
</div>
【问题讨论】:
-
你应该在
$to = 'joe@joe.com;的行上有一个结束撇号 -
mysql_escape_string转义字符串$_POST['Name']不是字符串 我什至不知道你为什么要使用这个函数。 -
想说同样的话@u_mulder
-
你这里有语法错误
$to = 'joe@joe.com;,忘记了结束单引号。 -
PHP 的任何数组的字符串表示形式都是字符串
Array,不管数组中有什么。因此,任何时候当你期望看到一些不同的文本时,这意味着你试图打印出一个你认为是字符串的数组。