Corso PHP Gestione e invio Email seconda parte


Prosegue il nostro mini corso di linguaggio PHP con la seconda parte dedicata alla gestione e invio di email. Gli utenti che inseriranno dati nel form dovranno immettere sia il nome che il colore e saranno inviati nella risposta.

Tuttavia, dai un’occhiata al codice FormField. Questa classe con nomi generici ha un metodo in esso in particolare per trattare con i colori. Inoltre, vedrai il nome in basso in minuscolo. Dovremmo rimuovere il codice colore e il codice tipo e creare una classe ColorField che eredita da FormField. Rimuovere il metodo in background da FormField e rimuovere la riga strtolower dal metodo clean di FormField. Quindi, crea ColorField per estendere FormField con funzionalità specifiche del colore:

class ColorField extends FormField {
public function background() {

if ($this->value == 'white') {
$color = 'green';
} else {
$color = 'white';
    }
return $color;
}

protected function clean() {
parent::clean();
if (isset($this->value)) {

$this->value = strtolower($this->value);
       }
   } 
}

Ci sono due cose che succedono qui. Primo, perché ColorField estende FormField, ha tutte le funzionalità di FormField. Non è necessario duplicare la __costruzione o la risposta o la pulizia. Sono ereditati da ColorField (il figlio) da FormField (il genitore). Ascolterai molto spesso genitore / figlio quando leggi le lezioni.
Possiamo aggiungere metodi completamente nuovi, come, in questo caso, il metodo dello sfondo. Esiste su ColorField ma non esiste su FormField.
Possiamo anche intercettare i metodi esistenti, come facciamo qui con il metodo clean. Lo intercettiamo, quindi chiamiamo clean sul genitore e poi riduciamo il valore risultante in minuscolo. Cambia la linea di colore $ nella pagina web per:

$color = new ColorField('color');

E quando riesegui la pagina, otterrai il tuo nome nel caso corretto, ma i colori saranno sempre in minuscolo.

Virgolette singole e doppie

Nel codice precedente, utilizziamo le virgolette doppie piuttosto che le virgolette singole attorno al testo “è necessario inserire un nome di campo”. Le doppie virgolette in PHP ti permettono di inserire facilmente variabili nel testo. PHP sostituirà i nomi delle variabili con il valore della variabile. In questo caso, sostituirà “{$ this-> fieldName}” con il valore di $ this-> fieldName. Puoi anche inserire “\ n” e “\ t” tra virgolette per visualizzare nuove linee e tabulazioni.
Le virgolette singole non lo fanno. Qualsiasi cosa all’interno di virgolette singole verrà visualizzata esattamente. Quindi utilizzerai spesso virgolette singole quando mostri qualcosa che include un segno di dollaro o una barra rovesciata.

Notifica

È abbastanza facile inviare una email da PHP. Hai già una sezione della tua pagina web in cui visualizzi un messaggio se sono stati rispettati sia il colore che il nome, quindi all’interno di questa sezione aggiungi:

<?php
$recipient = '[email protected]';
$subject = 'Colore preferito di ' . $name->value;
$message = $name->value . ' ci ha detto che il suo colore preferito è ' . $color->value . '.';
mail($recipient, $subject, $message);

?>

Se un visitatore compila il modulo con il nome “Ross Ciaglia” e il colore preferito di “verde”, riceverai un’email con l’oggetto “Colore preferito di John Beat” e il messaggio:
John Beat ha detto che il loro colore preferito era il verde. Puoi formattare il messaggio come vuoi. Il “.” Combinerà stringhe di testo; nel gergo programmatore, “concatenerà” le stringhe. Puoi avere più righe nel messaggio o creando un elenco molto lungo di concatenazioni o avendo più righe di “$ message. =”. La notazione “. =” Aggiungerà il nuovo testo al vecchio. Ad esempio, potresti voler includere più informazioni sui tuoi visitatori:

$message = $name->value . ' ci ha detto che il suo colore preferito è '
 . $color->value . '.';
$message .= "\n\n";
$message .= "Browser: " . $_SERVER['HTTP_USER_AGENT'] . 
"\n"; $message .= "IP Address: " . $_SERVER['REMOTE_ADDR'] . 
"\n"; mail($recipient, $subject, $message);

Ti ritroverai con un’e-mail che assomiglia a:

Ross Ciaglia ci ha detto che il suo colore preferito è bianco.

Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) 
AppleWebKit/534.57.2 (KHTML,like Gecko) Version/5.1.7 Safari/534.57.2
IP Address: 192.168.42.3

$ _SERVER, come $ _POST e $ _SESSION, contiene informazioni che il server sta trasmettendo al tuo script da altre posizioni. HTTP_USER_AGENT viene dal browser. In questo caso, stavo usando Safari su Mac OS X 10.6.8. Questo non è affidabile, perché viene direttamente dal browser e il browser può mentire. REMOTE_ADDR proviene da ciò che il server vede come indirizzo IP del visitatore. L’indirizzo IP è solitamente affidabile, poiché è necessario che la connessione tra il browser e il server funzioni. Tuttavia, gli indirizzi IP non sono né unici né statici. Gli indirizzi IP forniscono informazioni interessanti, a volte, ma non si può fare affidamento sul fatto che restino gli stessi per un visitatore o che non vengano condivisi tra più visitatori che utilizzano tutti lo stesso fornitore di servizi.

Mai contattare destinatari di email non attendibili

Proprio come non puoi fidarti dei dati inviati da un form quando lo mostri sulla tua pagina web, non inviare mai una e-mail a un indirizzo raccolto su un modulo non protetto. Ricorda la lezione sul colore: non ti puoi fidare che la persona dall’altra parte sia onesta, o addirittura che sia una persona. Non lasciare che i tuoi form diventino fonti di spam. Questo è estremamente importante. Non utilizzare mai indirizzi email da moduli come destinatari nei messaggi generati da PHP. Alla fine, spammer o molestatori troveranno il tuo form e lo useranno per inviare spam e messaggi indesiderati.

Conclusioni

Abbiamo visto in questa lezione del Corso di linguaggio PHP come avviene la gestione e invio di email seconda parte. Vista la rilevanza dell’argomento e visto il grande numero di richieste che ci sono pervenute a proposito della gestione dei Form e delle Aree Riservate, questo Portale ha tutta una sezione riservata al linguaggio di programmazione PHP. In questa sezione oltre a tanti esempi di codice, troverete anche strumenti utili per la programmazione come Framework, librerie e tanto altro. Vi invitiamo quindi a visitare questa sezione del sito e ricordiamo che è disponibile anche una sezione esempi di codice PHP come quello che abbiamo proposto in questo articolo.

Corso PHP XIV LezioneCorso PHP XVI Lezione