php - 在发送 PHP Mailer 电子邮件之前验证字段
问题描述
我是一个 ASP 中等水平的人,我对 PHP 完全陌生,并且对 PHP 有真正的知识或语法结构。虽然我可以阅读它并知道它在做什么,但我无法制定自己的代码来保存。所以现在我有一个客户端,他们的模板是用 PHP 构建的,并且邮件表单已被黑客入侵。因此,现在她每天都会从她网站上的欢迎电子邮件表单中收到数十封俄语电子邮件。首先,我在提交表单上添加了字段验证,但不知何故他们解决了这个问题。我需要在 PHP 邮件程序中添加字段值验证。我想添加 IF field.email 以“.ru”结尾,THEN Die END IF,IF field.attorney IsNULL THEN DIE; END IF, IF field.field IsNULL THEN DIE; 万一。PHP 代码中这些语句的语法是什么:
if (isset($_POST['email'])) {
$template = str_replace(
array("<!-- @{FromState} -->", "<!-- @{FromEmail} -->"),
array("Email:", $_POST['email']),
$template);
}else{
die('MF003');
}
if (isset($_POST['name'])) {
$template = str_replace(
"<!-- @{FromName} -->",
$_POST['name'],
$template);
}else{
die('MF006');
}
if (isset($_POST['message'])) {
$template = str_replace(
array("<!-- @{MessageState} -->", "<!-- @{MessageDescription} -->"),
array("Message:", $_POST['message']),
$template);
}
解决方案
如果您只想拒绝来自 .ru 电子邮件地址的电子邮件,您可以使用简单的正则表达式,例如:
if(preg_match('/\b.ru\b/', $_POST['email'])) {
// Error message
}
else {
// Send email
}
但是我确信有很多方法可以绕过它,例如从另一个 TLD 发送垃圾邮件。当然,更好的方法是防止垃圾邮件和机器人。诸如:蜜罐、会话令牌验证、垃圾邮件列表等方法会更有效。如果您正在寻找一个开始的地方,这是一篇很好的文章。
推荐阅读
- rocksdb - 在rocksdb中按值排序
- python - 获取python中两个列表中所有元素的总和
- python - 如何在没有 for 循环的情况下将 3D 图像矩阵转换为 2d 矩阵?Python 和 numpy
- flutter - 未定义flutter中的InteractiveViewer类
- django - django rest auth注册中password2如何为空
- python - Python Requests 403 错误在一个环境而不是另一个环境中?
- php - CakePhp 如何在 cakephp3 中以创建形式加载多个上下文
- discord.js - 如何让它为使用指定表情符号对消息做出反应的人添加角色
- javascript - scrollIntoView 不适用于我的反应组件
- html - 来源不明的边际权利