不使用 PHP 提交表单

Posted

技术标签:

【中文标题】不使用 PHP 提交表单【英文标题】:Form submit without PHP 【发布时间】:2019-10-18 08:56:42 【问题描述】:

我一直在想如何在不使用 php 代码的情况下提交表单数据,有什么办法吗? html 5 中的mailto: 仅让用户填写表单,然后当单击submit 时,它会打开另一个应用程序(台式机/笔记本电脑上的邮件应用程序,以及智能手机上的邮件应用程序)并将数据字段放入消息中并让用户在他们的邮件中单击发送,我该怎么做才能至少将电子邮件发送到我的电子邮件,而无需用户采取额外的步骤?或者被重定向到另一个应用程序?

【问题讨论】:

您不必使用 php 来提交表单。您甚至可以使用 JS 提交表单。而 mailto 与表单提交没有任何关系。 您可以使用 EmailJs 或 SMTPJs 使用 javascript 发送电子邮件。 emailjs.com/docs/sdk/installation , smtpjs.com 这就是你要找的***.com/a/36656479/7796787 如果你解释你想通过这样做来完成什么会更好。听起来您试图避免使用服务器来处理数据。 也许这就是你想要的***.com/questions/4782068/… 【参考方案1】:

如果我理解正确,我认为您可以执行以下操作。通过 javascript 获取输入的值,并使用 window.location 发送带有输入值的电子邮件。

HTML

<input type="text" id="subject">
<textarea id="body"></textarea>
<button type="button" id="send">Submit</button>

JS

$('#send').on('click', function(e) 
  e.preventDefault();
  subject = $('#subject').val();
  body = $('#body').val();
  window.location = "mailto:test@example.com?subject=" + subject + "&body=" + body;
);

【讨论】:

这看起来像 JQuery【参考方案2】:

HTML 的mailto 进程会提示用户的邮件服务(outlook、thunderbird 等)打开,但您的任何表单数据都不会被“处理”。因此,这可能不是您的最佳解决方案。

    mailto 对每个浏览器的响应方式并不完全相同 以及每个电子邮件客户端。 使用此方法,您的网站访问者只需在发送给您之前编辑电子邮件,就可以向您发送他们想要的任何信息。示例:我填写您的表单并点击发送(或提交) ) 按钮。我的邮件客户端(Thunderbird)打开,所有地址、发件人、主题和消息字段都已填写。我删除了消息字段并输入了“其他内容”。那我发给你。您打开电子邮件并... 您将您的电子邮件地址提供给数以千计的网络爬虫,这些网络爬虫每天都会在互联网上搜索电子邮件地址以发送诈骗、垃圾邮件等。

不使用 PHP 代码提交表单数据

脚本的主要目的是在发送信息之前对其进行处理。该脚本将解析数据,删除通常在编程中使用的信息位。比如,潜在的恶意软件代码。表单/电子邮件脚本(像这样)可以用任何可以直接与服务器通信的语言编写(前提是该语言在托管服务器上)... PHP、CGI/Perl、(可能是 javascript?)等。

您要做的是将表单中的值与用户的答案相匹配,然后传递该信息。为此,您需要先创建表单。当您的网站访问者填写表单并点击提交时,您希望将数据发送到一个脚本,该脚本将检查数据,然后填写电子邮件字段(收件人、发件人、主题、消息),然后通过服务器发送(无需将您的电子邮件地址暴露给全世界)。

这可能是中级程序员的任务。这并不意味着“菜鸟”做不到,只是需要一些学习才能到达那里。在线比较示例,直到找到对您有意义的示例。

【讨论】:

【参考方案3】:

回答您的问题可能为时已晚,但它仍然可以对其他人有所帮助,因此我在自己浏览此问题时发现了这一点。这是它的链接。他们提供的所有说明也写在那里: 表格狂欢:https://formspree.io/

而且这个网站也对这个话题做了一点解释:

https://pythonrepo.com/repo/formspree-formspree-python-communication

【讨论】:

以上是关于不使用 PHP 提交表单的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用表单提交到本页,POST接收不到数据值

使用 jQuery AJAX 向所需的 PHP POST 请求处理程序提交表单不起作用

使用ajax将表单提交给php而不刷新页面

使用 jQuery 提交表单并使用 PHP 发送.. 不知道为啥它不发送

php 表单提交

php防止表单重复提交