Una delle funzioni più richieste sul sito è l'applicazione o il modulo d'ordine, i cui dati vengono inviati per posta al proprietario del sito. Di norma, tali moduli sono semplici e consistono in due o tre campi per l'immissione dei dati. Come si crea un tale modulo d'ordine? Ciò richiede l'uso del linguaggio di markup HTML e del linguaggio di programmazione PHP.
Il linguaggio di markup HTML stesso è semplice, devi solo capire come e dove inserire determinati tag. Con il linguaggio di programmazione PHP, le cose sono un po' più complicate.
Non sarà difficile per un programmatore creare un tale modulo, ma un programmatore HTML potrebbe avere difficoltà a eseguire alcune delle azioni.
Crea un modulo per l'invio dei dati in html
La prima riga sarà la prossima
Ora mettiamo tutto insieme.
Ora renderemo obbligatori i campi del modulo. Abbiamo il seguente codice:
Crea un file che accetti dati da un modulo HTML
Questo sarà un file chiamato send.php
Nel file, nella prima fase, è necessario accettare i dati dall'array post. Per farlo creiamo due variabili:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
I nomi delle variabili PHP sono preceduti da un segno $ e da un punto e virgola alla fine di ogni riga. $ _POST è un array a cui vengono passati i dati dal modulo. Nel modulo html, il metodo di invio è specificato come metodo = "post". Quindi, due variabili sono prese dal modulo html. Allo scopo di proteggere il tuo sito, devi passare queste variabili attraverso diversi filtri - funzioni php.
La prima funzione converte tutti i caratteri che l'utente tenta di aggiungere al form:
In questo caso non vengono create nuove variabili in php, ma vengono utilizzate quelle esistenti. Quello che farà il filtro è convertire il carattere "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
La seconda funzione decodificherà l'URL se l'utente tenta di aggiungerlo al modulo.
$ fio = codiceurl ($ fio);
$ email = codice url ($ email);
Nella terza funzione, rimuoveremo gli spazi dall'inizio e dalla fine della stringa, se presenti:
$ fio = taglia ($ fio);
$ email = taglia ($ email);
Ci sono anche altre funzioni per filtrare le variabili php. Il loro utilizzo dipende da quanto temi che un utente malintenzionato tenti di aggiungere codice a questa forma di invio di dati alla posta html.
Convalida dei dati passati dal modulo HTML al file PHP
Per verificare se questo codice funziona, se i dati vengono trasmessi, è sufficiente visualizzarli sullo schermo utilizzando la funzione eco:
echo $ fio;
eco "
";
echo $ email;
La seconda riga è qui per dividere l'output delle variabili php in righe diverse.
Invio dei dati ricevuti dal modulo HTML alla posta utilizzando PHP
Per inviare dati alla posta, è necessario utilizzare la funzione posta in PHP.
mail ("a quale indirizzo inviare", "oggetto della lettera", "Messaggio (corpo del messaggio)", "Da: da quale indirizzo di posta elettronica viene inviata la lettera \ r \ n");
Ad esempio, è necessario inviare i dati all'indirizzo email del proprietario o gestore del sito [e-mail protetta]
La riga dell'oggetto dell'e-mail dovrebbe essere chiara e il messaggio e-mail dovrebbe contenere ciò che l'utente ha specificato nel modulo HTML.
posta (" [e-mail protetta]"," Applicazione dal sito "," Nome completo: ". $ Fio.". E-mail: ". $ E-mail," Da: [e-mail protetta]\r\n");
È necessario aggiungere una condizione che verificherà se il modulo è stato inviato utilizzando PHP all'indirizzo e-mail specificato.
if (posta (" [e-mail protetta]"," Ordina dal sito "," Nome completo: ". $ Fio.". E-mail: ". $ E-mail," Da: [e-mail protetta]\ r \ n "))
{
echo "messaggio inviato con successo";
) altro (
}
Pertanto, il codice del programma del file send.php che invierà i dati del modulo HTML alla posta sarà simile a questo:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlcaratteri speciali ($ fio);
$ email = htmlcaratteri speciali ($ email);
$ fio = codiceurl ($ fio);
$ email = codice url ($ email);
$ fio = taglia ($ fio);
$ email = taglia ($ email);
// echo $ fio;
// eco "
";
// echo $ email;
if (posta (" [e-mail protetta]"," Applicazione dal sito "," Nome completo: ". $ Fio.". E-mail: ". $ E-mail," Da: [e-mail protetta]\ r \ n "))
(echo "messaggio inviato con successo";
) altro (
echo "si sono verificati errori durante l'invio del messaggio";
}?>
Tre righe per verificare se i dati passati al file sono commentati. Se necessario, puoi rimuoverli, poiché erano necessari solo per il debug.
Inserimento del codice HTML e PHP per l'invio del modulo in un unico file
Nei commenti a questo articolo, molte persone si chiedono come creare sia il modulo HTML che il codice PHP per l'invio di dati alla posta in un file, non in due.
Per implementare tale lavoro, è necessario inserire il codice HTML del modulo nel file send.php e aggiungere una condizione che verificherà la presenza di variabili nell'array POST (questo array viene passato dal modulo). Cioè, se le variabili nell'array non esistono, è necessario mostrare il modulo all'utente. In caso contrario, è necessario accettare i dati dall'array e inviarli al destinatario.
Vediamo come modificare il codice PHP nel file send.php:
// controlla se le variabili esistono nell'array POST
if (! isset ($ _ POST ["fio"]) e! isset ($ _ POST ["email"])) (
?> ) altro (
// mostra il modulo
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlcaratteri speciali ($ fio);
$ email = htmlcaratteri speciali ($ email);
$ fio = codiceurl ($ fio);
$ email = codice url ($ email);
$ fio = taglia ($ fio);
$ email = taglia ($ email);
if (posta (" [e-mail protetta]"," Applicazione dal sito "," Nome completo: ". $ Fio.". E-mail: ". $ E-mail," Da: [e-mail protetta]\ r \ n ")) (
echo "Messaggio inviato con successo";
) altro (
echo "Si sono verificati errori nell'invio del messaggio";
}
}
?>
Verifichiamo l'esistenza di una variabile nell'array POST utilizzando la funzione PHP isset(). Un punto esclamativo prima di questa funzione in una condizione significa negazione. Cioè, se la variabile non esiste, allora dobbiamo mostrare il nostro modulo. Se non avessi messo un punto esclamativo, la condizione significherebbe letteralmente: "se esiste, mostra la forma". E questo è sbagliato nel nostro caso. Naturalmente, puoi rinominarlo in index.php. Se rinomini il file, non dimenticare di rinominare il nome del file e nella riga