• User

    Inviare form a più indirizzi email

    Ciao a tutti, non sono ferratissimo in campo php, ma da tempo uso un form per l'invio di un modulo di richiesta informazioni che viene spedito all'indirizzo email specificato nel campo "value".
    Ora avrei la necessità di inviare lo stesso form a più indirizzi e ho provato a:

    • inserirli separandoli da punto e virgola, ma da errore
    • ricopiare sotto l'intera stringa che comprende "value" (<input type="hidden"... ecc.) inserendo l'indirizzo email successivo, ma mi invia il modulo solo all'indirizzo presente nell'ultima stringa.

    Come posso risolvere?
    Grazie


  • ModSenior

    Ciao Chinaski,

    dovresti postarci il codice php da te utilizzato.


  • User

    Ok, grazie per il suggerimento.
    Dunque il codice php è questo:

    <?

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

    $delay = "5";

    // Il parametro $url indica la pagina alla quale si viene
    // rimandati una volta compilato correttamente il modulo

    $url = "pagina_xyz.html";

    // 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 ('*@quellochetipare.com', '[email protected]', '[email protected]');

    //FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
    /****************************************************************************************/

    $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='#FFFFFF'>
    <p align='center'><font face='Verdana' color='#000000' size='3'>Modulo non inviato per le seguenti ragioni</font></p><br>
    <p align='center'><font face='Verdana' size='3' color='#000000'>
    <?
    echo $reason."\n";
    ?>
    </font>
    <p align='center'><font face='Verdana' size='3' color='#000000'>Premere indietro
    nel browser e riprovare.</font></p><?
    } else { // every other error
    ?>
    Modulo non 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 (eregi ($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: $email\r\nReply-To: $email\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 = "#FFFFFF";
    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 = split(',',$contenitore);
    for ($i=0;$i<count($contenitore_finale);$i++) {
    $contenitore_to_test = trim($contenitore_finale*);
    if (!eregi("^[_\.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 = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required*);

      if((!(${$string})) || (!(${$string}))) {
       
         if ($missing_fields_redirect) {
            header ("Location: $missing_fields_redirect");
            exit;
         }
         $require;
         $missing_field_list .= "<b>Non trovato: $required*</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 (!eregi("^[_.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($HTTP_POST_VARS);

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

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

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

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

    <p align='center'><font face='Verdana' size='3' color='#000000'>Richiesta inoltrata, sarete contattati il prima possibile all'indirizzo email inserito.</font></p><p align='center'><font face='Verdana' size='3' color='#000000'>Grazie.</font></p><meta http-equiv='refresh' content='$delay; url=$url'>

    <p align='center'> </p>

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

    exit;
    }


  • User

    Mentre il codice che lo richiama dal modulo in html è questo (vi riporto le stringhe finali, visto che sopra ci sono campi come "nome", "contatti", "telefono" ecc.):

    <input type="submit" value="Invia richiesta"><input type="reset" value="Resetta modulo"></font></p>

                <input type="hidden" name="contenitore" value="[email protected]">
                <input type="hidden" name="invia_Dati" value="REMOTE_HOST,HTTP_USER_AGENT">
                <input type="hidden" name="require" value="email">
    

    </form>

    come dicevo, oltre a "[email protected]" vorrei poterlo spedire ad altri indirizzi...

    Grazie ancora


  • User

    Ho risolto!

    Se divido gli indirizzi tramite una virgola, anziché punto e virgola, funziona...


  • User

    Ho risolto!

    Se divido gli indirizzi con la virgola, anziché punto e virgola, funziona...