2016-02-20 55 views
7

Tôi đang cố gắng để kiểm tra nếu PHP làm việc từ căn cứ hỏa lực của tôi lưu trữ bằng cách sử dụng sau đây:Simple PHP với căn cứ hỏa lực lưu trữ

(index.html)

<form action="welcome.php" method="post"> 
    <input type="submit"> 
</form> 

(welcome.php)

<?php 

    $to = "[email protected]"; 
    $subject = "My subject"; 
    $txt = "Hello world!"; 
    $headers = "From: [email protected]"; 

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

?> 

Mỗi lần tôi thử trình duyệt này tiếp tục cố gắng mở tệp PHP thay vì xử lý tệp. PHP đơn giản có được bật trên máy chủ lưu trữ Firebase để xử lý một biểu mẫu đơn giản như thế này không? Nếu tôi có thể lấy nó để làm việc theo cách này, tôi sẽ thiết kế Form ra bao gồm một cách chính xác xác nhận, vv

Cảm ơn,

+0

Kiểm tra tệp Apache _httpd.conf_ của bạn (hoặc _/extra/mod_php.conf_) và thêm/bỏ ghi chú 'Ứng dụng AddType/x-httpd-php .php' – fusion3k

+3

Lưu trữ Firebase chỉ dành cho tệp tĩnh - không có PHP hoặc máy chủ khác -xử lý bên cạnh – Clive

+0

Bài đăng chéo: https://groups.google.com/forum/#!topic/firebase-talk/m-m1eVPQ7OA –

Trả lời

14

Từ (tôi nhấn mạnh) Firebase Hosting site:

Chúng tôi cung cấp tất cả các nội dung tĩnh của bạn (html, js, hình ảnh, v.v.) qua kết nối SSL an toàn và phân phát trên CDN.

Firebase Hosting là để lưu trữ nội dung tĩnh. Firebase hiện không cung cấp bất kỳ cách nào để thực thi mã của bạn trên các máy chủ của Firebase.

+0

Cảm ơn bạn đã làm rõ điều này hơn nữa, tôi không biết điều này có ảnh hưởng đến xử lý PHP hay không. Có cách nào khác để xử lý biểu mẫu đơn giản để gửi email nội dung biểu mẫu bằng cách sử dụng lưu trữ Firebase không? –

+0

http://stackoverflow.com/questions/12626940/mailto-on-submit-button –

+0

Tôi đã xem xét điều này, mặc dù tôi muốn trang web xử lý trực tiếp nội dung biểu mẫu và gửi email cho người đó. Tôi đã đọc rằng bạn có thể tích hợp Zapier như một tùy chọn khác với Firebase, mặc dù tôi không chắc chắn nếu đây là những gì tôi cần (https://zapier.com/zapbook/firebase/mandrill/). –

1

Bạn có thể chơi xung quanh với bất kỳ cách nào trong số này: Góc, Ember, Knockout, React, Nút JS. Điều tương tự như mã PHP bạn có thể thực hiện xảy ra với khá nhiều công nghệ Javascript - chỉ không có ngôn ngữ động. Ngoài ra một cách khác để làm điều đó là sử dụng một nhà cung cấp biểu mẫu trực tuyến như Biểu mẫu Jot hoặc các hình thức khác. Bạn có thể tạo và tạo kiểu cho biểu mẫu với tài khoản biểu mẫu trực tuyến, sau đó chỉ cần thêm nó vào trang web của bạn. Sau đó, khi người dùng đăng nó sẽ đăng lên biểu mẫu. Kết quả là bạn có một môi trường tập trung không chỉ cho bạn trang web hiện tại mà còn cho bất kỳ người nào khác trên đường. Bạn có thể tạo một dịch vụ web và đăng các giá trị ở đó - sau đó thực hiện bất cứ điều gì bạn muốn với chúng: lưu chúng vào cơ sở dữ liệu ... Các từ khác có một máy chủ khác xử lý tất cả những thứ đó để bạn có thể gọi nó từ các trang được lưu trữ trên Firebase. Hy vọng rằng sẽ giúp

PS: Tôi hiện đang xây dựng một sản phẩm là một phiên bản đơn giản của Biểu mẫu trực tuyến được sử dụng trên các trang web Firebase. Tôi đang có kế hoạch để có một vài người sử dụng cho bây giờ vì vậy nếu bạn muốn bạn có thể gửi email cho tôi và tôi sẽ tạo một tài khoản cho bạn để sử dụng nó. Miễn là không có sự lạm dụng như gửi một loạt các email - bạn sẽ ổn thôi!

enter image description here

2

Theo căn cứ hỏa lực cập nhật mới nhất đã bắt đầu sử dụng Mây Chức năng

Mây Chức năng cho căn cứ hỏa lực cho phép bạn chạy mã backend di động tự động phản ứng với các sự kiện kích hoạt bởi các tính năng căn cứ hỏa lực và các yêu cầu HTTPS. Mã của bạn được lưu trữ trong đám mây của Google và chạy trong một môi trường được quản lý. Không cần quản lý và mở rộng các máy chủ của riêng bạn.

Để biết thêm: https://firebase.google.com/docs/functions/

2

Không có PHP nhưng nodeJS sẵn cho server-side scripting ...

Google Cloud Functions được viết bằng JavaScript, và thực hiện trong một thời gian chạy Node.js.

Mandrill cũng hỗ trợ nodeJS và có tính năng Webhooks API. Vì vậy, người ta có thể yêu cầu mô-đun nút đó trong "các chức năng đám mây" và "móc nối web" ... và sau đó đăng với một biểu mẫu HTML lên chúng.

Sẽ cần có một vài chức năng đám mây HTTP được xác định trên Bảng điều khiển Firebase, để cho phép họ đăng ký, hủy đăng ký và quản lý đăng ký của họ. Một thậm chí có thể tạo đánh dấu HTML cho biểu mẫu đầu vào với các chức năng đám mây và sau đó đính kèm nó. Như một ví dụ, không được thử nghiệm và không có bảo đảm bao gồm:

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) => { 

}); 

Người ta có thể liên kết các sự kiện của căn cứ hỏa lực Auth, để giữ cho hai cơ sở dữ liệu người dùng trong trong động đồng bộ hóa (điều này là không cần thiết cho giống phi phi, nhưng cần thiết cho MailChimp - không quan trọng cho dù bằng cách sử dụng PHP hoặc nodeJS wrapper):

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; 
}); 

Firebase on Websites giải thích nó, trong khi có một địa phương Emulator Cloud Chức năng.

Các vấn đề liên quan