Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    From mail: problema con alcuni provider

    Ciao a tutti,

    premetto che sono un assoluto principiante.
    Ho realizzato un sito, a livello amatoriale, per un'amica.
    Ho inserito un form perché l'utente possa iscriversi alla newsletter.
    C'è un unico campo, relativo all'indirizzo e-mail.
    Il dato dovrebbe arrivare all'indirizzo di posta elettronica della mia amica.
    Ho utilizzato un form mail in PHP che ho già utilizzato su altri siti.
    Questa volta non funziona, eppure non ho modificato alcun parametro se non quelli necessari.
    L'unica cosa che mi viene in mente è che i siti su cui il file funziona sono su Aruba, mentre questo è su Register. Può c'entrare?

    Potete darmi una dritta?

    Grazie e buon lavoro a tutti.


    Questo è il codice che utilizzo:

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

    //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
    // io ho messo una homepage, ma potrebbe essere qualunque altra pagina

    $url "/";

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

    $provenienza = array ('yogamandir.org','www.yogamandir.org');

    // 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 ();


    //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='Arial' color='#990000' size='2'>
    <p align='center'><font face='Arial' color='#990000' size='2'>Il modulo non è 
      stato inviato per le seguenti ragioni</font></p>


    <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 
    "

    \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[] = "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 "#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 split(',',$contenitore);
    for (
    $i=0;$i<count($contenitore_finale);$i++) {
       
    $contenitore_to_test trim($contenitore_finale[$i]);
       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[$i]);
       
          if((!(${
    $string})) || (!(${$string}))) {
           
             if (
    $missing_fields_redirect) {
                
    header ("Location: $missing_fields_redirect");
                exit;
             }
             
    $require;
             
    $missing_field_list .= "[b]Non trovato: $required[$i][/b]
    \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[$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 iscrizione Newsletter";

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


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

    <p align='center'><font face='Arial' size='2' color='#800000'>Grazie per esserti iscritto alla newsletter.</font>
    </p></font></p><p align='center'><font face='Arial' size='2' color='#800000'>Riceverai le nostre comunicazioni all'indirizzo indicato: [b]
    $email[/b]

    Tra qualche istante sarai reindirizzato alla Home Page del sito.</font><p align='center'><font face='Arial' size='2' color='#800000'>[b]Buona navigazione!!![/b]
    </p><meta http-equiv='refresh' content='
    $delay; url=$url'>

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

    </body>
    "
    ;
       echo 
    "

    \n"
    ;
       
       exit;
    }

    // <----------   fine    ----------> //  
    ?>
    E questo è il messaggi odi errore:

    Il modulo non è stato inviato per le seguenti ragioni



    Premere indietro nel browser e riprovare.

    Il modulo non è stato inviato per le seguenti ragioni:

    \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 indirizzo email escluso."); } } 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 dominio non autorizzato."); 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[] = "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\n"; if ($title) echo "\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 "\n\n"; } $contenitore_finale = split(',',$contenitore); for ($i=0;$iOccorre un indirizzo email valido per continuare ($contenitore_to_test) "); } } if ($required) $require = $required; if ($require) { $require = ereg_replace( " +", "", $require); $required = split(",",$require); for ($i=0;$iindirizzo email 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

    Grazie per esserti iscritto alla newsletter.

    Riceverai le nostre comunicazioni all'indirizzo indicato: $email

    Tra qualche istante sarai reindirizzato alla Home Page del sito.

    Buona navigazione!!!



    "; echo "

    \n"; exit; } // <---------- fine ----------> // ?>
    Rebirthing - Respirare meglio per sviluppare benessere

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Tutto quel codice per mandare un'email?

    Tra l'altro è anche scritto male, alterni a caso stampe dirette a stampe con echo e non chiudi alcuni tag, per esempio quello dell'errore, non chiudi lo <span> prima dei
    .
    Usa <?php invece di <? che su alcuni server può dare problemi, ad esempio se lo short_tag è settato a false ed in alcuni casi può essere confuso con il tag XML.

    Ma al di là di tutto, fossi in te mi affiderei a phpmailer.

  3. #3
    Ti ringrazio per la risposta Alhazred,

    forse avrai intuito che la mia esperienza con PHP è limitatissima.
    il form mail che utilizzo l'ho trovato alcuni fa' sul web, quando ancora non sapevo nemmeno cosa fosse il PHP e da allora l'ho sempre utilizzato, cambiando qualcosina qua e la'.
    Rebirthing - Respirare meglio per sviluppare benessere

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Affidati a phpmailer.

    Qui c'è una pillola che te ne spiega l'uso
    http://forum.html.it/forum/showthrea...readid=1215634

    Il link per scaricare i file php necessari è questo
    https://github.com/Synchro/PHPMailer

  5. #5
    Grazie ancora.
    Mi metterò a studiare anche se mi sembra un po' complesso per le mie conoscenze ed esigenze.

    Buon lavoro.
    Rebirthing - Respirare meglio per sviluppare benessere

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E' estremamente semplice, vedrai che ci riuscirai in un attimo, devi solo vedere quali sono le funzioni che ti interessa chiamare, non dovrai modificare niente del codice di phpmailer.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.