使用 PHP 和 Jquery 将表单输入字段添加到电子邮件

2023-12-29

我用过This https://spruce.it/noise/simple-ajax-contact-form/在我的网站上创建联系表单的教程。不幸的是,字段的数量对我来说不够,所以我在表单中添加了公司和主题字段。

但是..我无法让邮件输出与其他字段一起使用。

快速综述:

html:

Each input field in the HTML is based on the following piece of lines:
  <label>Subject</label>
  <input type="text" id="subject" placeholder="What's up?"></div>

jQuery:

The full jQuery code is:
$(document).ready(function() {
    // Contact Form
$("#contactform").submit(function(e){
  e.preventDefault();
  var name = $("#name").val();
  var company = $("#company").val();
  var email = $("#email").val();
  var subject = $("#subject").val();
  var text = $("#text").val();
  var dataString = 'name=' + name + + '&company' + company + '&email=' + email + '&subject' + subject + '&text=' + text;
  function isValidEmail(emailAddress) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailAddress);
  };

  if (isValidEmail(email) && (text.length > 25) && (name.length > 1)){
    $.ajax({
    type: "POST",
    url: "js/functions.php",
    data: dataString,
    success: function(){
      $('.success').fadeIn(1000);
    }
    });
  } else{
    $('.error').fadeIn(1000);
  }

  return false;
});

});

整个functions.php脚本是:

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {

// detect & prevent header injections
$test = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
  exit;
}
  }

  //send email
  mail( "[email protected] /cdn-cgi/l/email-protection", "New message: ".$_POST['name'], $_POST['text'], "From:" . $_POST['email'] );

}
?>

好的,这就是我们所处的位置:表单确实已提交,并且我确实收到了一封邮件,但是附加字段($('#subject') 和 $('#company'))不会出现在电子邮件中。

所以我想在这个线程中实现两件事: 1) 电子邮件中出现“主题”和“公司”字段 2)我收到的邮件的布局如下:

Subject line: 'You received a new message: ' + 'subject'

Message body: 'You received a new mail via your contact form<br/>
Name: 'name'
Company: 'company'
Reply to: 'email'
Subject: 'subject'
Message: 'text'

我尝试调整线路 - 因为我认为这可以解决所有问题:

//send email
  mail( "[email protected] /cdn-cgi/l/email-protection", "New message: ".$_POST['name'], $_POST['text'], "From:" . $_POST['email'] );

但幸运没有降临在我身上。那么根据上面的代码,我需要调整哪些行以及需要添加哪些内容呢?

非常感谢大家!


编辑 JS 文件以反映这一点: JS:

$(document).ready(function() {
    // Contact Form
$("#contactform").submit(function(e){
  e.preventDefault();
  var name = $("#name").val();
  var company = $("#company").val();
  var email = $("#email").val();
  var subject = $("#subject").val();
  var text = $("#text").val();
  var dataString = 'name=' + name + + '&company=' + company + '&email=' + email + '&subject=' + subject + '&text=' + text;
  function isValidEmail(emailAddress) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailAddress);
  };

  if (isValidEmail(email) && (text.length > 25) && (name.length > 1)){
    $.ajax({
    type: "POST",
    url: "js/functions.php",
    data: dataString,
    success: function(){
      $('.success').fadeIn(1000);
    }
    });
  } else{
    $('.error').fadeIn(1000);
  }

  return false;
});

});

编辑 PHP 文件以反映这一点:

PHP:

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) && isset($_POST['company']) && isset($_POST['subject']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {

// detect & prevent header injections
$test = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
  exit;
}
  }

$to = "[email protected] /cdn-cgi/l/email-protection";
$subject = 'You received a new message: ' . $_POST['subject'];
$message = "You received a new mail via your contact form\n";
$message .= "Name: " . $_POST['name'] . "\n";
$message .= "Company: " . $_POST['company'] . "\n";
$message .= "Reply to: " . $_POST['email'] . "\n";
$message .= "Subject: " . $_POST['subject'] . "\n";
$message .= "Message: " . $_POST['text'] . "\n";
  //send email
  mail( $to, $subject, $message, "From:" . $_POST['email'] );

}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PHP 和 Jquery 将表单输入字段添加到电子邮件 的相关文章

  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • 设置股票数据 Highcharts xAxis 的格式

    我已经浏览了需要为 xAxis 属性设置的 Highcharts 选项来格式化时间标签 但没有运气了解这对于这种情况到底是如何工作的 我在白天 盘中 检索了股票的动态数据 我需要显示这些数据 因为检索的数据每天从 9 30 开始到 17 0
  • json、rails、javascript 中的解析错误

    我需要将 ruby 数组放入 javascript 数组中 但出现解析错误 var characters 这就是我将 ruby 嵌入到内联 javascript 中的方式 但它出现了解析错误 我应该如何将此 ruby 数组放入 javasc
  • 将 ESLint 与 Airbnb 样式和选项卡结合使用 (React.js)

    我正在开发一个 React js 应用程序 并且正在尝试检查我的代码 我将 ESLint 与 Airbnb 风格一起使用 但出现以下错误 src Test jsx 4 2 error Unexpected tab character no
  • 将数字限制为段的最优雅的方法是什么?

    比方说x a and b是数字 我需要限制x到段的边界 a b 换句话说 我需要一个钳位功能 https math stackexchange com q 1336636 clamp x max a min x b 有人能想出一个更易读的版
  • 两个日期之间间隔 15 分钟 javascript

    问题 我需要将两个日期 时间戳之间的所有 15 分钟时隙 日期格式 2016 08 10 16 00 00 创建为 HH mm 格式的数组 其中分钟限制为 00 15 30 45 示例 中午 12 30 到下午 2 30 将 gt 12 3
  • 未处理的承诺拒绝:Zone.js 检测到 ZoneAwarePromise `(window|global).Promise` 已被覆盖

    我尝试将 Angular2 快速入门代码合并到我当前的 webpack 构建中 似乎有些东西正在覆盖zone js抛出此错误的承诺 根据我见过的大多数 stackoverflow 帖子 zone js文件需要在任何可能包含承诺的文件之后加载
  • React TypeError:x 不是函数

    我在子组件中从父组件调用函数 booksRefresh 但出现错误 类型错误 booksRefresh 不是函数 我不知道为什么 因为 booksRefresh 是一个函数 有人可以帮我解释为什么会出现这个错误吗 这是我的代码 import
  • 如何在 jQueryUI 工具提示中换行

    新版本的 jQueryUI 1 9 附带了本机工具提示小部件 经过测试 如果内容 标题属性的值 很短 它就可以正常工作 但如果内容很长 工具提示一旦显示就会与输入文本重叠 有a demo http jqueryui com tooltip
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • Laravel - 覆盖模型 ID

    我正在开发电子书管理系统 我使用 UUID 而不是自动递增整数主键 它工作得很好 protected static function boot parent boot static creating function model model
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T
  • 如何禁用 TinyMCE 文本区域

    我已经尝试了以下所有方法 tbxNote attr disabled disabled doesn t work tbxNote attr disabled true doesn t work either tinyMCE init mod
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co
  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • Rails 使用 :collection 渲染部分内容

    这很简单 不应该成为问题 但我不明白这里发生了什么 我有以下代码 class DashboardController lt ApplicationController def bookings bookings Booking all en
  • 用CSS识别浏览器和操作系统?

    我知道为特定浏览器或操作系统编写特定 CSS 代码不是正确的做法 但在我正在构建的网站中 某些元素在特定浏览器中无法很好地呈现 例如 某些元素在 IE8 中不受支持 或者在小 iPhone 显示屏中看起来很奇怪 因此我的问题是 仅使用 CS
  • 确定网络驱动器的协议

    有没有办法确定 Windows 上安装的网络驱动器所使用的协议名称 SMB CIFS NFS 和版本 在 C 中 EDIT 使用 Rusted 的答案中的信息 我从网络上的 Windows 7 计算机获得了以下信息 NETRESOURCE
  • 从 Java 调用 Oracle 函数

    我在使用 ojdbc14 jar 从 Java 1 6 调用 Oracle 函数 不是存储过程 时遇到问题 我不知道该函数包含什么 因为我从远程服务器调用它 我所知道的是 FUNCTION ap ch get acct balances V
  • iOS 6 方向方法

    iOS 6 中的方向方法发生了变化 我在纵向模式下的整个应用程序有许多视图控制器 不是选项卡栏视图控制器 我只想在旋转设备时将其中一个视图控制器旋转到横向模式 它实际上显示 webView 下面的方法适用于xcode 4 4 但是 它不在
  • 帮助以窗口形式向 DataGridView 添加复选框列

    我正在尝试在简单的窗口窗体应用程序中向 DataGridView 添加复选框列 我使用 ADO NET 从数据库中提取一些数据 放入数据表中 然后将 datagridview 数据源设置为数据表 然后我想添加一个复选框列作为第二列 到目前为
  • 为什么这个程序在布尔条件变量不存在波动的情况下不会进入无限循环?

    我想了解何时需要将变量声明为易失性 为此 我编写了一个小程序 并期望它由于缺少条件变量的波动性而进入无限循环 它没有进入无限循环 并且在没有 volatile 关键字的情况下工作正常 两个问题 我应该在下面的代码清单中更改什么 以便它绝对需
  • Android BLE,读写特性

    我目前正在开发 Android BLE 并遇到了很多 Android BLE 堆栈的问题 我的开发工具是带有 Android 4 3 的 Samsung Galaxy J 我想知道如何从 BLE 读取特征并写入特征 就像我验证收到的数据 然
  • Razor 类库 (RCL) 中包含静态内容的 404

    我在 razor 类库 net Core 3 1 中实现 ASP NET Core v3 1 应用程序使用的静态文件时遇到困难 当尝试访问静态文件时 我只收到 404 未找到 我在 Stackoverflow 上遵循了以下答案 https
  • 后台服务导致崩溃

    我的问题可能是对服务及其使用的公然误解 或者与其他应用程序的冲突 当我开始一个特定的活动时 我启动两个后台服务 位置跟踪以给出行驶距离 以及经过的计时器 这两个服务都通过BroadcastReceiver 我用一个启动每项服务Long通过I
  • 使用 ggplot2facetwrap R 的控制图

    我有以下图表 这是使用 dplyr 创建的group by and summarise函数与ggplot2 slopes gt head 12 gt inner join word month counts by word gt mutat
  • 如何让我的 Discord 机器人删除频道中的所有消息?

    当用户要求机器人这样做时 我试图让我的机器人立即删除所有消息 但我的代码不起作用 import os import discord client discord Client client commands Bot command pref
  • 枚举 Windows 中所有可用的驱动器号

    我想使用 VC 枚举 Windows 中所有可用的驱动器号 尚未占用 我怎样才能做到这一点 获取逻辑驱动器 https msdn microsoft com en us library aa364972 v vs 85 aspx以掩码中的位
  • Assimp模型加载库安装/链接问题

    我正在尝试安装 Assimp 以在我的项目中使用 但遇到了一些麻烦 我目前使用的是 win 10 pro 和 Visual Studio 15 2017 我已经下载了Assimp 4 0 1 zip 将其解压到一个目录中 加载cmakeGu
  • jQuery 1.4.4:如何根据数据属性值查找元素?

    我想这应该是一个非常简单的任务 但使用 Firefox for Mac 3 6 12 以下内容不起作用 assign data attributes gallery li each function i this data slide i
  • 将 django-storages 后端从 s3 更改为 cloudfiles 并处理旧文件

    我有一个 django 应用程序 我正在将其转移到机架空间 我有一个使用 FileFields 的模型 并且正在使用 django storages 库 s3 boto 后端 我想使用 cloudfiles 进行存储 并且我需要能够提供旧的
  • 浮动后背景颜色不起作用

    我对CSS真的很陌生 所以我决定尝试重新创建this http www w3schools com css default asp我自己的页面 但我遇到了以下问题 HTML
  • 如何使用 boto3 在 EC2 中进行 SSH 和运行命令?

    我希望能够 ssh 进入 EC2 实例 并在其中运行一些 shell 命令 例如this https stackoverflow com a 15503965 4993513 我该如何在 boto3 中做到这一点 这个线程有点旧 但由于我花
  • 在 HashMap 中设置默认值[重复]

    这个问题在这里已经有答案了 我正在尝试找到一种方法使 HashMap 返回默认值 例如 如果您查看以下内容 将打印出 测试 空 如果我想请求一个默认值 那么每当我尝试获取未在 hashMap 中设置的内容时 我都会得到该值 该怎么办 Map
  • 使用 PHP 和 Jquery 将表单输入字段添加到电子邮件

    我用过This https spruce it noise simple ajax contact form 在我的网站上创建联系表单的教程 不幸的是 字段的数量对我来说不够 所以我在表单中添加了公司和主题字段 但是 我无法让邮件输出与其他