如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?
Posted
技术标签:
【中文标题】如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?【英文标题】:How can I send a copy of an HTML form to the sender's email using a text box? 【发布时间】:2020-12-19 15:51:06 【问题描述】:我的代码和这里一样: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, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head))
现在,当我将电子邮件地址写入文本框时,我会将表单的副本复制到我写的电子邮件中,但是当我将文本框留空时,表单的提交会以错误结束。
所以,重要的是,当表单发件人将他/她的电子邮件写入文本框时,他/她将获得表单的副本到他/她的电子邮件。当您将文本框留空时,表单将仅发送到收件人电子邮件。我该怎么做?
【问题讨论】:
"我已经替换了 PHP 代码:$sendCopy = isset($_POST['sendcopy']);" - 我已经告诉过你会返回布尔值。这不是如何使用它。 【参考方案1】:我已经替换了 PHP 代码:
$sendCopy = isset($_POST['sendcopy']);
这将始终被视为“设置”并返回布尔值。
当您将文本框留空时,表单将仅发送到收件人电子邮件。我该怎么做?
您希望使用ternary operator。
来自手册:
// 示例用法:三元运算符 $action = (empty($_POST['action'])) ? '默认' : $_POST['action'];
所以你的尝试将四舍五入:
$action = (isset($_POST['sendcopy'])) ? 'default' : $_POST['sendcopy'];
将default
替换为您希望的默认值。
旁注:在这种情况下,isset()
适用于单选按钮和复选框。如果您不想要空字段,除了单选按钮和复选框之外,您还可以使用 empty()
进行文本输入等。
【讨论】:
感谢您的回答!对不起,我是 *** 的初学者,当我看到我的问题已经结束时,我不知道我可以为你回答。我用复选框和 jquery 解决了我的代码问题,当我选中复选框时会出现电子邮件框。但是将来我知道我可以回答评论,尽管我的问题已经结束。为您提供良好的编码时刻,感谢您的帮助!以上是关于如何使用文本框将 HTML 表单的副本发送到发件人的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章