如何使用文本框将HTML表单的副本发送到发件人的电子邮件?

问题描述

我的代码与此处相同: How to send copy of PHP / HTML form to sender's email?

当我将电子邮件地址写到文本框中时,我会希望将表格的副本复制到我写的电子邮件中。

我已经替换了HTML代码

<label><input type="checkBox" name="sendcopy" value="Yes" checked/>Send copy to your mail</label>

<label><b>Write your email here:</b><div style="width: 33%;"><input class="contact-input"style="width: 500px;" name="sendcopy"><br/></div></label>

我已经替换了PHP代码

$sendcopy = isset($_POST['sendcopy']);

$sendcopy = $_POST["sendcopy"];

我替换了PHP代码

if ($sendcopy) {
    $sentToSender = mail($email,"=?$charset?B?" . base64_encode($subject) . "?=",$body,$head);}

if (mail($sendcopy,$head))

现在,当我将电子邮件地址写入文本框时,我将获得该表格的副本到我编写的电子邮件中,但是当我将文本框留空时,该表单的提交将以错误结尾。

因此,最主要的是,当表单发送者将他/她的电子邮件写到文本框中时,他/她将获得该表单的副本到他/她的电子邮件。并且当您将文本框保留为空白时,该表单将仅发送给收件人电子邮件。我该怎么办?

解决方法

我已经替换了PHP代码:

$ sendCopy = isset($ _ POST ['sendcopy']);

这将始终被视为“设置”,并将返回布尔值。

当您将文本框保留为空白时,该表单将仅发送给收件人电子邮件。我该怎么办?

您要使用ternary operator

从手册:

//示例用法:三元运算符 $ action =(empty($ _ POST ['action']))吗? '默认':$ _POST ['action'];

因此您的尝试将四舍五入为

$action = (isset($_POST['sendcopy'])) ? 'default' : $_POST['sendcopy'];

default替换为您希望的默认值。

旁注:在这种情况下,isset()适用于收音机/复选框。如果您不希望使用空字段,则可以使用empty()作为单选/复选框之外的文本输入等。