Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php电子邮件中的$value之间添加逗号,并从电子邮件中删除空值_Php_Email - Fatal编程技术网

在php电子邮件中的$value之间添加逗号,并从电子邮件中删除空值

在php电子邮件中的$value之间添加逗号,并从电子邮件中删除空值,php,email,Php,Email,我得到了一个email.php,可以从我网站上的表单发送电子邮件 <?php $name = $_POST['name']; $visitor_email = $_POST['email']; $phone = $_POST['phone']; $date = $_POST['date']; $add = $_POST['add']; $prod1 = $_POST['prod1']; $prod2 = $_POST['prod2']

我得到了一个email.php,可以从我网站上的表单发送电子邮件

<?php
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $phone = $_POST['phone'];
    $date = $_POST['date'];
    $add = $_POST['add'];
    $prod1 = $_POST['prod1'];
    $prod2 = $_POST['prod2'];
    $prod3 = $_POST['prod3'];
    $prod4 = $_POST['prod4'];
    $price = $_POST['item_price'];    

    $email_from = 'MySite <info@mywebsite.com>';//
    $email_subject = "Your order order has been received";
    $email_body = "Your booking details are as follows:\nName: $name\nPhone: $phone\nDate: $date\nAddress: $add\nProducts: $prod1 / $prod2 / $prod 3 / $prod4\nTotal: $ $price";

    $to = "$visitor_email, $email_from";
    $headers = "From: $email_from \r\n";
    $headers .= "Reply-To: $email_from \r\n";

    //Send the email!
    mail($to,$email_subject,$email_body,$headers);

    //done. redirect to thank-you page.
    header('Location: thank-you.html');     
?> 
问题:并非所有选项都是必需的,如果未填写某些选项,则电子邮件如下所示:

Your booking details are as follows:
Name: Name
Phone: Phone Number
Date: Date
Products: Product 1 / Product 2 / Product 3 / Product 4
Total: $100
Your booking details are as follows:
Name: Name
Phone: 
Date: 
Products: Product 1 / / Product 3 / 
Total: $60
  • 如果没有填写电话或日期,我怎么能在电子邮件中根本不显示,所以只显示姓名,下一行是产品
  • 对于产品,在我的代码中,如果未选择某些产品,则会显示/仍然显示,我如何将其更改为“产品:产品1、产品2、产品4”(例如,如果未选择产品3)。或“产品:产品2”(如果未选择其他产品)。我使用“/”只是为了暂时解决现在的问题,我更喜欢“/”而不是“/”
    有什么办法可以对其进行排序吗?

    在打印之前,您必须测试变量内容

    对于产品,您可以存储在数组中并内爆值

    试着这样做:

    $email_body = "Your booking details are as follows:\n";
    if ($name) $email_body .= "Name: $name\n";
    if ($phone) $email_body .= "Phone: $phone\n";
    if ($date) $email_body .= "Date: $date\n";
    if ($add) $email_body .= "Address: $add\n";
    $prods = [] ;
    if ($prod1) $prods[] = $prod1 ;
    if ($prod2) $prods[] = $prod2 ;
    if ($prod3) $prods[] = $prod3 ;
    if ($prod4) $prods[] = $prod4 ;
    // $email_body .= "Products: " . implode(" / ", $prods) . "\n";
    $email_body .= "Products: " . implode(", ", $prods) . "\n"; // with ", " separator
    $email_body .= "Total: $ $price";
    

    在打印变量之前,必须测试变量内容

    对于产品,您可以存储在数组中并内爆值

    试着这样做:

    $email_body = "Your booking details are as follows:\n";
    if ($name) $email_body .= "Name: $name\n";
    if ($phone) $email_body .= "Phone: $phone\n";
    if ($date) $email_body .= "Date: $date\n";
    if ($add) $email_body .= "Address: $add\n";
    $prods = [] ;
    if ($prod1) $prods[] = $prod1 ;
    if ($prod2) $prods[] = $prod2 ;
    if ($prod3) $prods[] = $prod3 ;
    if ($prod4) $prods[] = $prod4 ;
    // $email_body .= "Products: " . implode(" / ", $prods) . "\n";
    $email_body .= "Products: " . implode(", ", $prods) . "\n"; // with ", " separator
    $email_body .= "Total: $ $price";
    

    根据值生成
    $email\u body
    ,如果(!empty($phone)){$email\u body.=“\nPhone:$phone”}。我看不出用逗号代替斜杠有什么问题,你有错误吗?将它们添加到您的问题中。根据值构建
    $email\u body
    ,如果(!empty($phone)){$email\u body.=“\nPhone:$phone”}。我看不出用逗号代替斜杠有什么问题,你有错误吗?将它们添加到你的问题中。这很有效。但是有一个问题,如果说根本没有选择任何产品,而且它完全是空的,那么我如何才能不让“产品:”出现在电子邮件中?@DilMarc try:
    if(!empty($prods))$email_body.=“产品:”。内爆(“,”,$prods)。“\n”非常好。它起作用了。我试了一整天,你的解决方案效果很好。非常感谢你!这很有效。但是有一个问题,如果说根本没有选择任何产品,而且它完全是空的,那么我如何才能不让“产品:”出现在电子邮件中?@DilMarc try:
    if(!empty($prods))$email_body.=“产品:”。内爆(“,”,$prods)。“\n”非常好。它起作用了。我试了一整天,你的解决方案效果很好。非常感谢你!