mercoledì 6 giugno 2012

Inviare messaggi dal sito

Vediamo come realizzare un form per inviare messaggi dal sito

Esempio


Scrivi un messaggio

Tutti i campi sono obbligatori

Con questo Script in PHP sarà possibile inviare messaggi dal sito, direttamente sulla nostra casella di posta. Lo Script controlla che tutti i campi siano compilati, prepara la mail e la spedisce su una casella di posta predefinita. Unico requisito richiesto, è che il nostro Server supporti PHP.
Se vuoi scaricare subito il file completo senza leggere tutta la guida puoi trovarlo qui.

Vediamo se il nostro server supporta PHP

Se siamo sicuri che il nostro Server supporti PHP possiamo saltare questo passaggio e andare avanti al punto successivo.
Altrimenti è molto semplice verificare la presenza di PHP sul nostro server, basta seguire questi semplici passi.

Analizziamo lo script per inviare mail dal sito:

Lo script che ho preparato appositamente per questa guida, è suddiviso in 4 parti:
  1. una sezione per impostare le preferenze del nostro FORM MAIL: la casella email che riceverà i messaggi dal sito, l'oggetto del messaggio, il testo dei vari messaggi resi dal form ecc...;
  2. lo script che invia fisicamente la mail alla nostra casella di posta;
  3. un po' di codice CSS per dare un aspetto gradevole al form e ai messaggi di errore o consenso che il form rende;
  4. il codice HTML del form che servirà all'utente per compilare il messaggio da inviare tramite il sito;

Impostiamo le preferenze dello Script

/** MODIFICA CON I TUOI DATI ******************************************/

//imposta il tuo indirizzo email
 $miamail = "miaemail@example.com";
// imposta l'oggetto della mail che riceverai 
 $oggettomail = "Messaggio dal sito";
// imposta un messaggio per email inviata correttamente
 $inviato = '<p class="green">Ok e-mail inviata correttamente.</p>';
// imposta un messaggio per errore invio
 $errore = '<p class="red">Attenzione: non &egrave; stato possibile inviare l&acute;email...</p>';
// imposta un messaggio per tutti i campi obbligatori
 $tutticampi = '<p class="red">Attenzione: tutti i campi sono obbligatori...</p>';
// etichetta per input Nome e Cognome
 $_nomecognome = "Nome e Cognome";
// etichetta per input email
 $_email = "Email";
// etichetta per textarea messaggio
 $_messaggio = "Messaggio";
 
/* FINE MODIFICA CON I TUOI DATI **************************************/ 

Vediamo lo script che prepara e invia la mail

//recupero i dati dal form per l'invio
 $nome      = $_POST['nome'];
 $email     = $_POST['email'];
 $messaggio = $_POST['messaggio'];

//vediamo se l'utente sta componendo il form o ha cliccato su scrivi
if($_POST['submit'] == 'scrivi'){
 
//controllo tutti i dati 
//se aggiungi altri campi obbligatori al form devi aggiungerli anche qui nell'if
  if(($nome != $_nomecognome) && ($email != $_email) && !empty($messaggio)){ 
      
//imposto il mittente della mail  
  $headers .= 'From: "'.$nome.'" <'.$email.'>';
//spedisco la mail
  $mail = mail($miamail, $oggettomail, $messaggio, $headers);
      
//controllo il corretto invio dei dati
  if($mail){
       
//stampo un messaggio dopo l'invio dei dati
  $msg = $inviato;

  }else{
//stampo un messaggio in caso di errore
  $msg = $errore;
      
//fine se tutti i campi sono compilati
  }
 }else{
//stampo un messaggio se mancano i campi obbligatori
  $msg = $tutticampi;
 }
}

Un po' di CSS per rendere gradevole il Form

<style type="text/css">
body {
 font: 1em "Trebuchet MS", Arial, Helvetica, sans-serif;
}
input, textarea {
 font: 1em "Trebuchet MS", Arial, Helvetica, sans-serif;
 color: #900;
 border: 1px solid #CCC;
 background-color: #FFFEF0;
 display:block;
}
input[type="submit"]:hover {
 background-color: #0C0;
 color:#FFF;
}
label {
 font-size: 0.7em;
 color: #CCC;
}
.red {
 color:#FFF;
 background-color: #C00;
 width:375px;
 padding:2px;
}
.green {
 color:#FFF;
 background-color: #0C0;
 width:375px;
 padding:2px;
}
</style>

Vediamo l'HTML del form per compilare il messaggio

<h2>Scrivi un messaggio</h2>
<p><em>Tutti i campi sono obbligatori</em></p>
<form name="form-mail" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <input type="text" name="nome" value="<?php echo $_nomecognome; ?>" onblur="if(this.value=='') this.value='<?php echo $_nomecognome; ?>';" onfocus="if(this.value=='<?php echo $_nomecognome; ?>') this.value='';" />
 <input type="text" name="email"  value="<?php echo $_email; ?>" onblur="if(this.value=='') this.value='<?php echo $_email; ?>';" onfocus="if(this.value=='<?php echo $_email; ?>') this.value='';"/>
 <label><?php echo $_messaggio; ?></label>
 <textarea name="messaggio" cols="50" rows="7"></textarea>
 <input type="submit" name="submit" value="scrivi" />
</form>

Spieghiamo

Nelle prime righe del codice trovo le variabili che una volta impostate fanno funzionare lo script secondo le nostre impostazioni.
Nel personalizzare le variabili, è importante rispettare la sintassi, senza cancellare gli apici che aprono e chiudono i valori impostati. Nell'esempio che segue, la parte in rosso è il contenuto della variabile che va modificato a proprio piacimento, la parte in grigio non va modificata:
$miamail = "miaemail@example.com";

Nella seconda parte del codice c'è il motore dello script, la parte cioè che confeziona il messaggio e lo spedisce alla nostra casella di posta. In questa sezione di codice non c'è nulla da modificare. Il codice va lasciato così com'è.

La terza parte di codice è  composta da un po' di CSS che ho inserito per rendere gradevole la visualizzazione del form. Questo codice può essere modificato, ampliato o anche cancellato completamente.

La quarta e ultima parte di codice è l'HTML che serve per marcare il FORM.

Download

Seguendo questo link puoi scaricare il file completo e funzionante.

Nessun commento:

Posta un commento