变量不会在PHP中从表单传递到电子邮件

时间:2012-07-31 16:07:14

标签: php mysql variables

我正在尝试创建三个表单,每个表单使用php发送电子邮件。在第二和第三种形式中,变量不会输出分配给它的值。我在第二和第三种形式中使用了$ _POST函数和$ _REQUEST。在第一种形式中,电子邮件已发送,所有变量都能正常显示。信息通常存储在数据库中。唯一的问题是从第二个和第三个发送的电子邮件中看不到变量,我不知道如何使其工作。这是发生了什么的一个粗略的例子。

 $x = new mysql($connection_information);
 $x->update(array('email' => $_POST['email'], 'xemail' => $_POST['xemail'], 'parking' = $_POST['parking'] etc) 

 $email = $_POST['email']; 
 $xemail = $_POST['xemail'];

 $subject = "Form Request " . $email;
 $headers = 'From: ' . $xemail . "\r\n" .

 $message = "this email will. $_POST['parking']"

 mail($email, $subject, $message, $header);

还有更多内容,我只是尽可能简单。它的消息区域没有看到变量,有谁知道是什么导致了这个问题?

2 个答案:

答案 0 :(得分:1)

在双引号文本字符串中引用数组键时,我发现最好使用大括号语法,如:

$message = "this email will. {$_POST['parking']}";

同样可以说尝试访问对象属性。

答案 1 :(得分:1)

你可以试试这个。阅读文本有点困难,但更容易看到变量的位置:

$message = "this email will. ".$_POST['parking'];

此外,它上面的这一行是开放式的,会导致PHP解释器失败:

 $headers = 'From: ' . $xemail . "\r\n" .

总的来说,我认为你希望你的代码是这样的:

$x = new mysql($connection_information);
$x->update(array('email' => $_POST['email'], 'xemail' => $_POST['xemail'], 'parking' => $_POST['parking']);

$email = $_POST['email']; 
$xemail = $_POST['xemail'];

$subject = "Form Request ".$email;
$headers = "From: ".$xemail."\r\n";

$message = "this email will. ".$_POST['parking'];

mail($email, $subject, $message, $header);