所以我基本上没有使用 PHP 的经验,我需要创建一个 PHP 表单,根据用户的选择,它会发送到不同的电子邮件地址。
例如,下拉菜单将包含以下选项:服务、零件、人力资源等。
并且这些选项中的每一个,当被选中时,将允许完整提交“姓名、电子邮件、电话号码等”。去那个特定部门的电子邮件地址。
我看到了一些与此类似的答案,但由于我对 PHP 的了解有限,我在创建它时遇到了很多麻烦。
有人可以帮我吗?
谢谢!
您可以从您的选择字段中获取电子邮件的值,并在发送邮件时使用它,如下所示:
$mail['to'] = $_POST['mail'];
//make sure to filter this using regex/etc..
//to make sure this is a valid email and is coming from your own form.
mail($mail['to'], $mail['subject'], $mail['body'], $mail['headers'])
我会把数据过滤留给你,但你应该明白。
编辑:
确保您进行过滤$_POST['mail'];
,因为如果您没有过滤,这将导致其他人向您的脚本提交电子邮件,这是一个巨大的安全漏洞。可能的解决方案是使用随机数或 1 次使用令牌等。尝试搜索邮件标头注入以获取更多信息。
使用该mail()
功能并根据发布的参数选择适当的电子邮件地址。请注意,允许未知用户直接通过您的服务器发送邮件可能不是一个好主意:如果mail()
实现方式存在安全漏洞怎么办?为什么不将相关电子邮件地址放在网站上,并根据用户从下拉菜单中选择的条目仅显示正确的电子邮件地址?
你应该这样做:
<?php
// Check if form has been submitted
if (isset($_POST["dep"])) {
if ($_POST["dep"] == 1) {
$email = "sales@example.com";
}
elseif ($_POST["dep"] == 2) {
$email = "support@example.com";
}
// Send the email
mail($email, "The subject", "The Body, "Some headers (optional)")
}
?>
<select name="dep">
<optoin value="1">Sales</option>
<optoin value="2">Support</option>
</select>