1

我正在尝试创建三个表单,每个表单都使用 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);

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

4

2 回答 2

1

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

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

尝试访问对象属性也是如此。

于 2012-07-31T16:11:14.327 回答
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);
于 2012-07-31T16:20:54.937 回答