Php变量未显示在电子邮件中
我已经尽了我所能,终于想到在这里问: 我有一个复选框,可以检查多个值,在我的php中,我试图在如下变量中获取这些值:Php变量未显示在电子邮件中,php,email,Php,Email,我已经尽了我所能,终于想到在这里问: 我有一个复选框,可以检查多个值,在我的php中,我试图在如下变量中获取这些值: if(!empty($_POST['procedure'])) { foreach($_POST['procedure'] as $procedure) { $proc = implode(",", (array)$procedure); } echo $proc; } 问题1。它会回显上一个选定值,而不是多个选定值 在我的html电子邮件模板中,我有以下内容:
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
$proc = implode(",", (array)$procedure);
}
echo $proc;
}
问题1。它会回显上一个选定值,而不是多个选定值
在我的html电子邮件模板中,我有以下内容:
<strong>Which procedure(s) are you inquiring about?</strong>
<p><?php echo $proc; ?></p>
打印值,不带逗号,但在电子邮件中仍为空值
另外,由于我通过电子邮件发送这些值,结果没有意义,所以我只是为了测试目的而尝试
按要求输出$proc:
Vertical Horizontal Flat
这些是复选框的值,echo$proc正在正确捕获它们
更新:邮件功能代码
$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>
$user\u email=addslashes($\u POST['email']);
$filter_values='form,submit btn';
$errors='您的邮件已成功发送
",;
$options=array(
'来自电子邮件'=>'',
'from_name'=>'form',//可选
'回复'=>'test@test.com“,//可选
'地址'=>'my@gmail.com',
“主题”=>“联系人”,
'附件'=>'img/wallacegromit.jpg',//可选
'筛选值'=>'表单,提交btn',
'html_template'=>'../forms/mailer/email templates/contact email.html',//可选
'css_template'=>'../forms/mailer/email templates/contact email.css',//可选
“已发送消息”=>”您的消息已成功发送!
,//可选
“显示错误”=>true//可选,默认为false
);
$sent_message=Form::sendAdvancedMail($options);
您想了解哪些程序?
{proc}
我的情况如何
更新:这是替换html电子邮件的所有已发布值的代码
$filter = explode(",", $filter_values);
for ($i = 0; $i < count($filter); $i++) {
$filter[$i] = trim(mb_strtolower($filter[$i]));
}
$replacements = array_merge($values, $custom_replacements);
foreach ($replacements as $key => $value) {
if (!in_array(mb_strtolower($key), $filter) && !is_array($value)) {
$html = str_replace('{' . $key . '}', $replacements[$key], $html);
}
}
$filter=explode(“,”,$filter\u值);
对于($i=0;$i$value){
如果(!in_数组(mb_strtolower($key),$filter)&&!is_数组($value)){
$html=str_replace('{.$key.'}',$replacements[$key],$html);
}
}
这句话
$proc=内爆(“,”,(数组)$procedure)
看起来似乎不会在每次迭代中累积值。
因此可能是:
$proc = "";
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
//accumulate with '.=' operator
$proc .= implode(",", (array)$procedure);
}
echo $proc;
(很抱歉,我还不能添加注释,只能添加响应)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>
//寄信
使用
或者使用PHPmailer的属性“body”
body = $gethtml;
好吧,为什么邮件里是空的?电子邮件代码是文件夹中一个单独的模板文件。除此之外,所有其他值都可见。正在尝试您的建议。。now@Don'tPanic I已将代码更改为此-如果(!empty($_POST['procedure']){foreach($_POST['procedure']as$procedure){$proc.=内爆(“,”,(array)$procedure);echo$proc;}}电子邮件中的值仍然为空,我的钱在(未知)表单和其他取消下载的PHP,包括
mail()
——“电子邮件中的值仍然为空–phpnewbie”我已经更改了代码,在bigging中添加了点,这些值正在回显,但html电子邮件中没有任何内容显示为空。也许您正在尝试解析模板电子邮件,就像这里指定的那样@MikeBau,如果你能帮助我理解我将如何在代码中使用它。我收到以下警告:file\u get\u contents($gethtml):无法打开流:没有这样的文件或目录。因为contact-email.html位于主窗体以外的其他目录中。我的问题中提到了目录结构;
<strong>Which procedure(s) are you inquiring about?</strong>
<p>{{proc}}</p>
$gethtml = file_get_contents('../forms/mailer/email-templates/contact');
$gethtml = str_replace('{{proc}}', $proc, $gethtml);
'html_template' => $gethtml,
body = $gethtml;