使用Firebase托管的简单PHP联系人表单

使用Firebase托管的简单PHP联系人表单,php,firebase,Php,Firebase,我尝试使用以下方法测试PHP是否可以从我的Firebase主机运行: (index.html) (welcome.php) 每次我尝试这个方法时,浏览器总是试图打开PHP文件,而不是处理它。Firebase服务器上是否启用了简单PHP来处理这样的简单表单?如果我能让它以这种方式工作,我将正确构建表单,包括验证等 谢谢,来自(我的重点): 我们通过安全的SSL连接提供所有静态内容(html、js、图像等),并在CDN上提供 Firebase托管用于托管静态资产。Firebase目前不提供任

我尝试使用以下方法测试PHP是否可以从我的Firebase主机运行:

(index.html)


(welcome.php)


每次我尝试这个方法时,浏览器总是试图打开PHP文件,而不是处理它。Firebase服务器上是否启用了简单PHP来处理这样的简单表单?如果我能让它以这种方式工作,我将正确构建表单,包括验证等

谢谢,

来自(我的重点):

我们通过安全的SSL连接提供所有静态内容(html、js、图像等),并在CDN上提供

Firebase托管用于托管静态资产。Firebase目前不提供任何在Firebase服务器上执行代码的方法


更新(2018-08-08):您现在可以运行Node.js/JavaScript代码,但是。但这仍然不允许您运行PHP代码。

您可以使用以下任何一种:Angular、Ember、Knockout、React、, 节点JS。PHP代码所做的事情,几乎可以通过任何Javascript技术实现——只是没有动态语言。另一种方法是使用在线表单提供商,如Jot Forms或其他。您可以使用在线表单帐户创建表单并设置其样式,然后只需将其添加到您的站点即可。然后,当用户发布时,它将发布到表单中。因此,您不仅为当前站点,而且为将来的任何其他站点提供了一个集中化的环境。您可以创建一个web服务并在那里发布值,然后对它们执行任何操作:将它们保存到数据库中。。。Otherwords有另一个服务器来处理所有这些事情,所以您可以从Firebase托管的站点调用它。希望有帮助

PS:我目前正在构建一个产品,它是Firebase网站上使用的在线表单的简化版本。我计划现在有几个人使用,所以如果你愿意,你可以给我发电子邮件,我会为你创建一个帐户来使用它。只要没有像发一堆电子邮件这样的虐待,你就会没事的


根据最新更新,firebase已开始使用云功能

Firebase的云功能允许您运行移动后端代码,自动响应Firebase功能和HTTPS请求触发的事件。您的代码存储在谷歌的云中,并在托管环境中运行。无需管理和扩展您自己的服务器


更多信息:

没有
PHP
但是
nodeJS
可用于服务器端脚本

都是用JavaScript编写的,并在 Node.js运行时

Mandrill还支持并具有一个。 因此,您可以要求这些“云函数”和“web挂钩”中的节点模块……然后使用HTML表单发布到它们上

需要在Firebase控制台上定义一些云函数,以便让他们订阅、取消订阅和管理订阅。甚至可以使用云函数为输入表单生成HTML标记,然后附加它。例如,未经测试且未提供任何保证:

const functions = require('firebase-functions');
const mandrill = require('mandrill-api/mandrill');
var client = new mandrill.Mandrill('YOUR_API_KEY');

/* TODO: add the user on Firebase, respond through the API */
exports.user_add = functions.https.onRequest((req, res) => {

});

/* TODO: change subscription settings on Firebase, respond through the API */
exports.user_edit = functions.https.onRequest((req, res) => {

});

/* TODO: remove the user on Firebase, respond through the API */
exports.user_remove = functions.https.onRequest((req, res) => {

});

/* optional: generate the HTML markup of the form, send HTTP response */
exports.markup = functions.https.onRequest((req, res) => {

});
可以绑定Firebase的事件,以使两个用户数据库保持同步(这对于Mandrill不是必需的,但是对于MailChimp是必需的,无论是使用PHP还是nodeJS包装器):


解释它,同时有一个本地的云函数。

检查您的apachehttpd.conf文件(或/extra/mod_php.conf)和add/uncomment
AddType application/x-httpd-php.php
Firebase托管仅用于静态文件-没有php或其他服务器端处理Cross post:我不相信我可以访问任何有问题的文件,因为Firebase托管似乎阻止访问这些文件()。有没有其他方法可以检查这个问题?你可以使用任何一个Angular Ember Knockout React Node JS。感谢你澄清这一点。此外,我不知道这是否会影响PHP处理,现在显然是这样。有没有其他方法可以使用Firebase主机处理简单的表单到电子邮件表单内容?我已经看过了,尽管我更希望网站直接处理表单内容并向此人发送电子邮件。我已经读到,您可以将Zapier作为另一个选项与Firebase集成,尽管我不确定这是否是我所需要的()。Firebase函数只是构建G Cloud函数的一种简单方法。在GCF中,您可以运行许多不同的语言,包括PHP
<?php

   $to = "my@email.com";
   $subject = "My subject";
   $txt = "Hello world!";
   $headers = "From: dummy@email.com";

   mail($to,$subject,$txt,$headers);

?>
const functions = require('firebase-functions');
const mandrill = require('mandrill-api/mandrill');
var client = new mandrill.Mandrill('YOUR_API_KEY');

/* TODO: add the user on Firebase, respond through the API */
exports.user_add = functions.https.onRequest((req, res) => {

});

/* TODO: change subscription settings on Firebase, respond through the API */
exports.user_edit = functions.https.onRequest((req, res) => {

});

/* TODO: remove the user on Firebase, respond through the API */
exports.user_remove = functions.https.onRequest((req, res) => {

});

/* optional: generate the HTML markup of the form, send HTTP response */
exports.markup = functions.https.onRequest((req, res) => {

});
exports.on_user_create = functions.auth.user().onCreate(event => {
   const user = event.data;
});

exports.on_user_delete = functions.auth.user().onDelete(event => {
   const user = event.data;
});