Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React表单将数据发送到PHP脚本,然后PHP脚本将发送电子邮件_Php_Reactjs_Lamp - Fatal编程技术网

React表单将数据发送到PHP脚本,然后PHP脚本将发送电子邮件

React表单将数据发送到PHP脚本,然后PHP脚本将发送电子邮件,php,reactjs,lamp,Php,Reactjs,Lamp,我一直在努力解决这个问题。。。一些背景-我的React前端运行在灯后端(公司的设置不是我的选择),我目前的任务是创建一个联系人表单,当提交时,将表单数据发送到一个PHP脚本,然后触发一封电子邮件发送到我们设置的特定收件箱 我觉得我对表单部分的理解是正确的,因为我对HTML/CSS/JS/React最为熟悉,但是LAMP堆栈的设置真的让我很头疼。我会在下面列出一些具体的问题 如何直接针对EC2实例上的文件 我当前在尝试以PHP文件为目标时从服务器上收到一个500错误(加载资源失败)。我尝试了来自服

我一直在努力解决这个问题。。。一些背景-我的React前端运行在灯后端(公司的设置不是我的选择),我目前的任务是创建一个联系人表单,当提交时,将表单数据发送到一个PHP脚本,然后触发一封电子邮件发送到我们设置的特定收件箱

我觉得我对表单部分的理解是正确的,因为我对HTML/CSS/JS/React最为熟悉,但是LAMP堆栈的设置真的让我很头疼。我会在下面列出一些具体的问题

  • 如何直接针对EC2实例上的文件
  • 我当前在尝试以PHP文件为目标时从服务器上收到一个500错误(加载资源失败)。我尝试了来自服务器根目录的绝对路径以及来自项目根目录的路径。不管怎样,它都失败了

  • 我在控制台收到React警告“表单提交失败,因为表单未连接”,但据我所知,表单已连接。。。action属性绑定到我想向其发送数据的PHP文件
  • 目前,在提交表单时,我有一个异步等待调用正在运行,该调用应该对文件进行fetch/POST调用,然后事情应该得到处理,但我同样遇到了上面列出的问题

    我不想公开共享代码,因为这是一个公司项目,但如果有人有这种类型的设置经验,有时间帮助别人解决问题,请让我知道。为小说里的朋友们感到抱歉,谢谢你们的帮助


    编辑-是否有任何类型的工作可供我使用,以避免将其发送到PHP脚本,并以emailJS之外的另一种方式生成电子邮件?

    如果您创建了标准html表单,那么您可能在表单上具有
    操作
    方法
    属性

    传统上,你会:

  • 将form
    action
    属性设置为指向php脚本。除非php脚本是非文档根目录,或者您有一个.htaccess文件,该文件通过中介(如index.php文件)路由所有请求,否则php脚本没有理由不能直接访问

  • 将表单
    method
    属性设置为
    POST

  • 操作中指向的PHP脚本应该从$\u POST读取,该数组将包含通过POST请求发送到PHP脚本的任何数据

  • 然后,您可以使用多种方法发送电子邮件。既然你提到了EC2,你显然是在AWS。在这种情况下,AWS提供了一种很棒的电子邮件服务,称为简单电子邮件服务。您可以在此处找到SDK和通过它发送电子邮件的示例脚本: 但是,请注意,SES要求您完成验证过程,因为您最初将处于沙箱模式,该模式有一定的限制


  • 500错误是服务器端错误。检查您的错误日志。
    如果有人具有此类设置的经验,并且有时间帮助他人排除故障,请让我知道。
    …抱歉,这不是本网站的工作方式。本网站的目的是创建有用、有趣和广泛适用的编程问题库,以方便未来读者。对未在此处发布的代码执行(可能是长度)定制故障排除并不能帮助我们实现这一目标。这是你可以雇佣一个自由开发者来做的事情。但是如上所述,在执行任何其他操作之前,您应该首先检查PHP错误日志文件。由于您是StackOverflow的新手(欢迎!),我建议您选择注册StackOverflow时建议您执行的操作(但我从您的个人资料中可以看出您还没有),然后阅读指南。这样你就能更好地了解一个好问题是什么样子的,然后你可以更新你的问题来提高它的质量,从而提高你得到答案的机会。这些资源可以帮助您在StackOverflow上获得良好的体验,因此请使用它们。谢谢。
    我不想公开共享代码,因为这是一个公司项目
    …实际上,发送电子邮件的小脚本不太可能泄露任何商业秘密…特别是如果它甚至不能正常工作的话。联系人表单很难成为USP,你可以在网上的几十个地方找到这类东西的演示和工作源代码。
    有什么方法可以避免发送到PHP脚本。
    …为了发送电子邮件,你需要一些服务器端代码。不能直接从浏览器执行此操作。因此,您要么使用PHP,要么使用另一种服务器端语言。感谢您的快速响应和概述!我们有一个htaccess,它可以路由到“service.php”文件,该文件与您提到的index.php文件同义。这就是我们网站的服务内容,我想这就是我的脱节发生的地方,但我也不确定如何补救,但感谢您对正在发生的事情进行磨练/让我更加自信,我需要弄清楚如何处理这些文件,以便让呼叫通过。您使用的是框架吗?如果您不能直接路由到PHP文件,那么您可能有一个routes.PHP或类似的东西,允许您创建一个基本端点。我知道我可以使用我的service.php文件(我们的index.php)创建一个端点,因为它目前处理我们的公共web流量。这实际上控制着我们的私有门户,它与我们的公共门户完全分开,所以它们被打包成一个门户。如果我理解正确-创建一个端点-允许.php脚本位于那里-将数据发布到激活脚本的端点?是的,这就是它的大小。基本上,您只需要创建一个调用任何类/m的POST路由/端点