Php变量没有出现在电子邮件中

时间:2016-03-14 18:01:52

标签: php email

我尽力而为,最后想到这里问:

我有一个复选框,可以检查多个值,在我的php中我试图在这样的变量中获取这些值:

realloc

问题1.它回显了所选的最后一个值,而不是所选的多个值。

在我的html电子邮件模板中,我有:

if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
      $proc = implode(",", (array)$procedure); 
}
echo $proc;
}

问题2.它没有回应任何值。

对于问题1的解决方案,我尝试了以下代码:

<strong>Which procedure(s) are you inquiring about?</strong>
<p><?php echo $proc; ?></p>

打印出值,不带逗号但在电子邮件中仍为空值。

此外,由于我通过电子邮件发送这些值来回显结果没有意义,我只是为了测试目的而尝试。

按要求输出$ proc:

if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
      echo $proc; 
   }

}

这些是复选框的值,echo $ proc正在正确捕捉它们。

更新:邮件功能代码。

Vertical  Horizontal Flat

我的情况怎么样?

更新:这是替换html电子邮件的每个发布值的代码。

$user_email = addslashes($_POST['email']);
$filter_values = 'form, submit-btn';
$errors = '<p class="alert alert-success">Your message has been successfully sent !</p>';
$options = array(
'from_email'     =>  '',
'from_name'      =>  'form', // optional
'reply_to'       =>  'test@test.com', // optional
'adress'         =>  'my@gmail.com',
'subject'        =>  'contact',
'attachments'    =>  'img/wallacegromit.jpg', // optional
'filter_values' => 'form, submit-btn',
'html_template'  => '../forms/mailer/email-templates/contact-email.html', // optional
'css_template'   => '../forms/mailer/email-templates/contact-email.css', // optional
'sent_message'   => '<p class="alert alert-success">Your message has been successfully sent !</p>', // optional
'display_errors' => true // optional, default false
);
$sent_message = Form::sendAdvancedMail($options);

<strong>Which procedure(s) are you inquiring about?</strong>
 <p>{proc} </p>

2 个答案:

答案 0 :(得分:0)

这句话     $ proc = implode(&#34;,&#34;,(array)$ procedure);

看起来不会在每次迭代中累积值。 所以它可能是:

  $proc = "";
  if(!empty($_POST['procedure'])) {
        foreach($_POST['procedure'] as $procedure) {
        //accumulate with '.=' operator
        $proc .= implode(",", (array)$procedure); 
  }
  echo $proc;

(抱歉,我无法添加评论,只有回复)

答案 1 :(得分:0)

echo $proc将仅输出数组的最后一个元素。 $ proc的值将被替换。

  $proc = "";
  if(!empty($_POST['procedure'])) {
        foreach($_POST['procedure'] as $procedure) {

        $proc = implode(",", (array)$procedure); 
  }
  echo $proc;

要解决此问题,您必须使用运算符'。''

新代码:

  $proc = "";
  if(!empty($_POST['procedure'])) {
        foreach($_POST['procedure'] as $procedure) {

        $proc .= implode(",", (array)$procedure); 
  }
  echo $proc;

要在你的php中获取$ proc,你应该使用占位符。所以改变

<strong>Which procedure(s) are you inquiring about?</strong>
<p><?php echo $proc; ?></p>

<strong>Which procedure(s) are you inquiring about?</strong>
<p>{{proc}}</p>

在PHP脚本中使用以下代码

$gethtml = file_get_contents('../forms/mailer/email-templates/contact');
$gethtml = str_replace('{{proc}}', $proc, $gethtml);

//发送邮件 使用

'html_template'  => $gethtml,

或使用PHPmailer

的属性'body'
body = $gethtml;