invio mail da form

irenerigon

Nuovo Utente
7 Set 2015
1
0
0
Ciao a tutti,

mi rivolgo a voi per un aiuto perché sta notte ho fatto nottata per cercare di risolvere un problema che magari é banale...
devo inviare una mail da un form che ha un po' di campi

Codice:
<form id="preventivo-form" class="form-horizontal"  action="formInvio.php"  method=”post”>

                        <fieldset>


                            <legend>Dati personali</legend>

                        <div class="form-group">
                            <label for="nome" class="col-sm-3 control-label">Nominativo</label>
                            <div class="col-sm-9">
                                <input class="form-control" type="text" id="nome" name="nome" placeholder="Nome e cognome*" class="input-with-feedback" required>
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="email" class="col-sm-3 control-label">Email</label>
                            <div class="col-sm-9">
                                <input class="form-control" type="text" id="email" name="email" placeholder="Indirizzo e-mail*" class="input-with-feedback" required minlength="2">
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="inputTel" class="col-sm-3 control-label">Telefono</label>
                            <div class="col-sm-9">
                                <input class="form-control" type="text" id="inputTel" name="inputTel" placeholder="Telefono (opzionale)" class="input-with-feedback">
                            </div>
                        </div>
                        </fieldset>
                        <fieldset>

                            <legend>Dati immobile</legend>

                            <div class="form-group">
                                <label for="inputIndi" class="col-sm-3 control-label">Indirizzo</label>
                                <div class="col-sm-9">
                                    <input class="form-control" type="text" id="inputIndi" name="inputIndi" placeholder="Indirizzo immobile da certificare*" class="input-with-feedback" required>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="inputMetri" class="col-sm-3 control-label">Metratura</label>
                                <div class="col-sm-9">
                                    <input class="form-control" type="number" id="inputMetri" name="inputMetri" placeholder="Metri quadrati*" class="input-with-feedback" required>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="inputAnno" class="col-sm-3 control-label">Anno di costruzione</label>
                                <div class="col-sm-9">
                                    <input class="form-control" type="number" id="inputAnno" name="inputAnno" placeholder="Anno (in cifre)" class="input-with-feedback" >
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="inputRisc" class="col-sm-3 control-label">Riscaldamento</label>
                                <div class="col-sm-9">

                                    <input class="form-control" type="text" id="inputRisc" name="inputRisc" placeholder="Autonomo o centralizzato" class="input-with-feedback" >
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="messaggio" class="col-sm-3 control-label">Messaggio</label>
                                <div class="col-sm-9">
                                    <textarea class="form-control" id="messaggio" name="messaggio" rows="6" placeholder="Inserisci qui il tuo messaggio..."  ></textarea>
                                </div>
                            </div>
                        </fieldset>

                        <div class="view-all more-about text-center">
                                <center> <input type="submit" name="submit" value="Invia"></center>
                         </div>

                       </form>

Il dominio di questo sito é di Aruba per cui ho deciso di affidarmi al codice che ho trovato sul vademecum di Aruba modificandolo dove richiesto. Premetto che spiacevolmente il codice aveva degli errori (numerose funzioni Deprecated) ma poi, dopo qualche modifica, il tutto sembrava girare. Purtroppo però il codice mi invia una mail vuota con mittente e destinatario uguali ([email protected]), come se non riuscisse a catturare i parametri inviati dal POST.

Spero che qualcuno possa aiutarmi, sono disposta anche a cambiare il codice PHP in calce! grazie mille!!!

PHP:
<?
/*
formMail completo, è possibile aggiungere qualunque campo
è sufficiente inserire le due pagine in un punto qualunque
del proprio dominio.
by linkbruttocane
REV 2013
*/

//INIZIO PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/****************************************************************************************/

//email di destinazione, mettere qui la propria email

$contenitore = "[email protected]";

// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio. l IP è facoltativo.

$provenienza = array ('/ape-xxx.it/','/www.ape-xxx.it/');


// Il parametro $url indica la pagina alla quale si viene
// rimandati una volta compilato correttamente il modulo
// io ho messo la homepage, ma potrebbe essere qualunque altra pagina

$url = "/";


//FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/****************************************************************************************/
// Il parametro $delay indica i secondi di ritardo impiegati 
// a riportare l'utente all'home page una volta 
// compilato correttamente il modulo

$delay = "25";

// Il parametro $esclusioni vi permette di NON consentire 
// messaggi da un indirizzo mail specificato
// sia appartenente ad un dominio, ovvero 
// 'tutte le mail che appartengono ad un dominio'
// od anche a singoli account

$esclusioni = array('[email protected]', '[email protected]', '[email protected]');


//$redirect = "http://www.masterbass.com";

$versione_form = "stabile";

function print_error($reason,$type = 0) {
   global $versione_form;
   build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
      if ($type == "missing") {
      ?>
      <body bgcolor='#94B6C6'>
      <p align='center'><font face='Arial' color='#990000' size='2'>Il modulo non è
stato inviato per le seguenti ragioni</font></p><br>
<p align='center'><font face='Arial' size='2' color='#990000'>
     <?
     echo $reason."\n";
     ?>
     </font>
     <p align='center'><font face='Arial' size='2' color='#990000'>Premere indietro
nel browser e riprovare.</font></p><?
   } else { // every other error
      ?>
      Il modulo non è stato inviato per le seguenti ragioni:<p align='center'>
      <?
   }
   echo "<br><br>\n";
  
   exit;
}


function check_banlist($esclusioni, $email) {
   if (count($esclusioni)) {
      $allow = true;
      foreach($esclusioni as $banned) {
         $temp = explode("@", $banned);
         if ($temp[0] == "*") {
            $temp2 = explode("@", $email);
            if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
               $allow = false;
         } else {
            if (trim(strtolower($email)) == trim(strtolower($banned)))
               $allow = false;
         }
      }
   }
   if (!$allow) {
      print_error("Stai usando un <b>indirizzo email escluso.</b>");
   }
}


function check_referer($provenienza) {
   if (count($provenienza)) {
      $found = false;
      $temp = explode("/",getenv("HTTP_REFERER"));
      $referer = $temp[2];
      for ($x=0; $x < count($provenienza); $x++) {
         if (preg_match ($provenienza[$x], $referer)) {
            $found = true;
         }
      }
      if (!getenv("HTTP_REFERER"))
         $found = false;
      if (!$found){
         print_error("Provieni da un <b>dominio non autorizzato.</b>");
         error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
      }
         return $found;
      } else {
         return true; // 
   }
}
if ($provenienza)
   check_referer($provenienza);

if ($esclusioni)
   check_banlist($esclusioni, $email);


function parse_form($array) {
   // build reserved keyword array
   $reserved_keys[] = "required";
   $reserved_keys[] = "redirect";
   $reserved_keys[] = "email";
   $reserved_keys[] = "require";
   $reserved_keys[] = "contenitore";
   $reserved_keys[] = "titolo";
   $reserved_keys[] = "bgcolor";
   $reserved_keys[] = "text_color";
   $reserved_keys[] = "link_color";
   $reserved_keys[] = "vlink_color";
   $reserved_keys[] = "alink_color";
   $reserved_keys[] = "title";
   $reserved_keys[] = "missing_fields_redirect";
   $reserved_keys[] = "invia_Dati";
   if (count($array)) {
      while (list($key, $val) = each($array)) {
       
         $reserved_violation = 0;
         for ($ri=0; $ri<count($reserved_keys); $ri++) {
            if ($key == $reserved_keys[$ri]) {
               $reserved_violation = 1;
            }
         }
      
         if ($reserved_violation != 1) {
            if (is_array($val)) {
               for ($z=0;$z<count($val);$z++) {
                  $content .= "$key: $val[$z]\n";
               }
            } else {
               $content .= "$key: $val\n";
            }
         }
      }
   }
   return $content;
}


function mail_it($content, $titolo, $email, $contenitore) {
        mail($contenitore, $titolo, $content, "From: $contenitore\r\nReply-To: $contenitore\r\nX-Mailer: DT_formmail");
}


function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
   if ($style_sheet)
      echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
   if ($title)
      echo "<title>$title</title>\n";
   if (!$bgcolor)
      $bgcolor = "#94B6C6";
   if (!$text_color)
      $text_color = "#80000";
   if (!$link_color)
      $link_color = "#0000FF";
   if (!$vlink_color)
      $vlink_color = "#FF0000";
   if (!$alink_color)
      $alink_color = "#000088";
   if ($background)
      $background = "background=\"$background\"";
   echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
}

$contenitore_finale = preg_split('/\,/',$contenitore);
for ($i=0;$i<count($contenitore_finale);$i++) {
   $contenitore_to_test = trim($contenitore_finale[$i]);
   if (!preg_match("/^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$/", $contenitore_to_test)) {
      print_error("<b>Occorre un indirizzo email valido per continuare ($contenitore_to_test) </b>");
   }
}


if ($required)
   $require = $required;

if ($require) {
  
   $require = preg_replace( " +", "", $require);
   $required = preg_split(",",$require);
   for ($i=0;$i<count($required);$i++) {
      $string = trim($required[$i]);
   
      if((!(${$string})) || (!(${$string}))) {
       
         if ($missing_fields_redirect) {
            header ("Location: $missing_fields_redirect");
            exit;
         }
         $require;
         $missing_field_list .= "<b>Non trovato: $required[$i]</b><br>\n";
      }
   }
   
   if ($missing_field_list)
      print_error($missing_field_list,"missing");
}


if (($email) || ($EMAIL)) {
   $email = trim($email);
   if ($EMAIL)
      $email = trim($EMAIL);
   if (!preg_match("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
      print_error("il suo <b>indirizzo email</b> non è valido");
   }
   $EMAIL = $email;
}






$content = parse_form($_POST, $sort);




if ($invia_Dati) {
   $invia_Dati = preg_replace( " +", "", $invia_Dati);
   $splitta_Dati = preg_split(",",$invia_Dati);
   $content .= "\n------ variabili utente ------\n";
   for ($i=0;$i<count($splitta_Dati);$i++) {
      $string = trim($splitta_Dati[$i]);
      if ($splitta_Dati[$i] == "REMOTE_HOST")
         $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
      else if ($splitta_Dati[$i] == "REMOTE_USER")
         $content .= "REMOTE USER: ". $REMOTE_USER."\n";
      else if ($splitta_Dati[$i] == "REMOTE_ADDR")
         $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
      else if ($splitta_Dati[$i] == "HTTP_USER_AGENT")
         $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
   }
}


if (!$titolo)
   $titolo = "Richiesta preventivo";

mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);


if ($redirect) {
   header ("Location: $redirect");
   exit;
} else {
   print "<body bgcolor='#94B6C6'>

<p align='center'><font face='Arial' size='2' color='#800000'>Grazie per averci
contattato.</font></p><p align='center'><font face='Arial' size='2' color='#800000'>Riceverete
risposta all'indirizzo email da voi indicato $email<br><br>...Ritorno automatico alla Home page in corso....</font></p><meta http-equiv='refresh' content='$delay; url=$url'>

<p align='center'>&nbsp;</p>

</body>
";
   echo "<br><br>\n";
   
   exit;
}

// <----------   fine    ----------> //
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ciao,
la funzione mail_it chiama la mail di php
PHP:
mail($contenitore, $titolo
ma il primo parametro è l'indirizzo del destinatario, quindi non può essere "$contenitore" ma l'email che, probabilmente, ti arriva dal form compilato dall'utente
ciao
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
U PHP bottone per invio mail o ritorno al form PHP 15
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
paloppa [PHP] Invio mail da form dubbio PHP 17
F Form mail php errore invio PHP 5
I form invio mail HTML e CSS 1
Francesco Polese Errore form invio mail+php PHP 22
P invio mail da form con dati php PHP 7
W Estrapolare un indirizzo mail di un form durante l'invio PHP 5
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
Il Matta Problema Form e invio mail PHP 2
B Problema form mail per invio doppio allegato PHP 1
A Problema orario invio mail per form PHP 4
S php form invio mail PHP 3
L Form con invio mail PHP 1
E Form invio e-mail con allegato PHP 51
E Form invio e-mail con allegato PHP 0
N Form invio Mail con Allegato PHP 2
C problema invio mail con form php PHP 0
T form per invio mail PHP 38
R [Flash] redirect dopo invio form mail Flash 4
S form invio mail con foto o logo PHP 46
P Form per invio mail PHP 27
G Invio Dati Form ad E-Mail PHP 1
P aggiunta modulo invio allegati a form mail PHP 15
S Problema invio mail da form Classic ASP 6
Z form invio mail, scelta destinatari PHP 0
S form invio mail con opzioni PHP 3
B Invio tramite form mail di più allegati PHP 0
T Invio mail da form contatti con annesso file attachment Classic ASP 1
L Problemi con invio form via mail Classic ASP 3
F script asp invio mail con dati di un form Classic ASP 3
S problemi invio dati da un form a e.mail HTML e CSS 1
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
R Invio mail con allegati multipli PHP 0
R Invio mail con allegati da directory PHP 1
Daniele_Carrara Problema timeout - invio mail PHP 7
G Invio mail con php da dati prelevati da un database PHP 9
AC1 [PHP] Invio Mail PHP 18
A [PHP] Problema invio mail con funzione mail() PHP 3
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
Punix [PHP] problema script invio e-mail PHP 2
G Invio Mail con PHPMailer, problemi SMTP PHP 7
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
Z Limite invio newsletter con PHP - mail() PHP 4
E [Javascript] Messaggio di avvenuto invio mail non visualizzato Javascript 1
F Invio Mail con Javascript Javascript 25
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
lucarpenter Settaggio invio mail allarme IP camera P2P IP Cam e Videosorveglianza 9
F Invio automatico mail php PHP 0
R Errore invio mail in php PHP 1

Discussioni simili