2016-02-20 23 views
7

sto cercando di testare se PHP funziona dal mio Firebase di hosting utilizzando il seguente:semplice PHP con Firebase ospitare

(index.html)

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

(welcome.php)

Ogni volta che provo a farlo, il browser continua a tentare di aprire il file PHP anziché elaborarlo. Il semplice PHP è abilitato sul server host Firebase per elaborare un semplice modulo come questo? Se riesco a farlo funzionare in questo modo, io sarò la costruzione del modulo fuori compreso correttamente la convalida ecc

Grazie,

+0

Controllare il file Apache _httpd.conf_ (o _/extra/mod_php.conf_) e aggiungere/uncomment 'Applicazione AddType/x-httpd-php .php' – fusion3k

+3

L'hosting di Firebase è solo per file statici - nessun PHP o altro server elaborazione a lato – Clive

+0

Cross-post: https://groups.google.com/forum/#!topic/firebase-talk/m-m1eVPQ7OA –

risposta

14

Dal Firebase Hosting site (sottolineatura mia):

Consegniamo tutti il tuo contenuto statico (html, js, immagini, ecc.) su una connessione SSL sicura e servirlo su una rete CDN.

Firebase Hosting è per ospitare asset statici. Al momento Firebase non offre alcun modo per eseguire il codice sui server di Firebase.

+0

Grazie per chiarire questa Inoltre, io non so se questo potrebbe influenzare l'elaborazione PHP, che è ovviamente il caso ora. Esiste un altro modo per elaborare un semplice modulo per inviare i contenuti dei moduli tramite l'hosting di Firebase? –

+0

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

+0

Ho già dato un'occhiata a questo, anche se preferirei che il sito web elabori direttamente i contenuti del modulo e invii un'email alla persona. Ho letto che puoi integrare Zapier come un'altra opzione con Firebase, anche se non sono sicuro se questo è ciò di cui ho bisogno (https://zapier.com/zapbook/firebase/mandrill/). –

1

È possibile giocare con uno di questi: Angolare, Brace, Fine, Reagire, Nodo JS. La stessa cosa che puoi ottenere con il codice PHP con praticamente tutte le tecnologie Javascript - solo un linguaggio dinamico. Un altro modo per farlo è utilizzare un provider di moduli online come Jot Forms o altri. Puoi creare e modellare il modulo con l'account del modulo online, quindi aggiungerlo semplicemente al tuo sito. Quindi, quando l'utente lo invierà al modulo. Di conseguenza hai un ambiente centralizzato non solo per il tuo sito attuale ma per tutti gli altri lungo la strada. Puoi creare un servizio Web e inserire valori lì - quindi fare quello che vuoi con loro: salvarli nel database ... Altre parole hanno un altro server che gestisce tutte quelle cose così puoi chiamarlo semplicemente dai siti ospitati da Firebase. Spero che questo aiuti

PS: Attualmente sto creando un prodotto che è una versione semplificata di moduli online da utilizzare sui siti web di Firebase. Sto pianificando di avere un po 'di persone che usano per ora, quindi se vuoi puoi mandarmi una e-mail e creerò un account per usarlo. Finché non ci sono abusi come l'invio di un sacco di e-mail - starai bene!

enter image description here

2

Secondo l'ultimo aggiornamento Firebase ha iniziato a utilizzare funzioni cloud

funzioni cloud per Firebase permette di eseguire il codice backend mobile che risponde automaticamente agli eventi innescati da caratteristiche Firebase e le richieste HTTPS. Il tuo codice viene memorizzato nel cloud di Google e viene eseguito in un ambiente gestito. Non è necessario gestire e scalare i propri server.

Per maggiori: https://firebase.google.com/docs/functions/

2

Non c'è PHP ma nodeJS disponibili per lo scripting server-side ...

Google Cloud Functions sono scritti in JavaScript, ed eseguire in un runtime Node.js.

Mandrillo supporta anche nodeJS ed è dotato di un Webhooks API. Pertanto, è possibile richiedere quel modulo nodo all'interno di queste "funzioni cloud" e "web hook" ... e quindi pubblicare su di essi un modulo HTML.

Dovrebbero esserci alcune funzioni cloud HTTP definite nella Console di Firebase, per consentire loro di iscriversi, annullare l'iscrizione e gestire le proprie sottoscrizioni. Si potrebbe anche generare il markup HTML per il modulo di input con le funzioni cloud e quindi collegarlo. A titolo di esempio, non testato e nessuna garanzia incluso:

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

}); 

Si può legare gli eventi della Firebase Auth, per mantenere due database utente in in-sync (questo non è richiesto per Mandrillo, ma necessario per MailChimp - no importa se con il PHP o nodeJS involucro):

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 spiega tutto, mentre v'è un locale Emulator per le funzioni cloud.