Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Inviare somma e file da web in email...

    Ciao a tutti , per prima cosa complimenti per il forum e un saluto a tutti, premetto che sono solo una principiante ma con guide e script online cerco di fare esperimenti per migliorare le mie conoscenze .
    E da un po' che utilizzo il generalform di saibal per l'invio di mail e con delle modifiche sto cercando di fargli inviare la somma di 2 numeri ma non ci sono ancora riuscita :

    Form in HTML
    <html>

    <body>

    <form name="modulo1" method="post" action="send.php">

    <input type="text" name="numero1">



    <input type="text" name="numero2">



    <input type="submit" value="INVIA I DATI">

    </form>

    </body>

    </html>
    File send.php
    <?php

    //email del destinatario del modulo
    $destinatario = "miamail@tin.it";

    //nome mittente per la corretta intestazione del modulo
    $nome_mittente = "Form di Prova";

    //email mittente per per la corretta intestazione del modulo
    $email_mittente = "prova@tin.it";

    //oggetto dell'email
    $oggetto_email = "Modulo inviato dal tuo sito";

    //se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y". valori possibili: "y" e "n"
    $all_free = "y";

    //se invece avete messo "n" inserire tra virgolette, separati da virgola, i nomi dei campi da rendere OBBLIGATORI
    //Esempio: $campi_req = array("telefono","via");
    $campi_req = array("nome_e_cognome","cellulare");

    //url della pagina di ringraziamento
    $pagina_grazie = "grazie.htm";

    //url della pagina errore campi vuoti
    $pagina_error_empty = "campi_vuoti.htm";

    //url della pagina errore email
    $pagina_error_email = "errore_email.htm";

    //url della pagina errore condizioni non accettate
    $pagina_error_condizioni = "errore_condizioni.htm";

    //orario e data
    $ora = date ("H:i:s");
    $data = date ("d/m/Y");

    //intestazione dell'email (arriva al destinatario)
    $corpo = "
    Modulo inviato il $data alle ore $ora\n
    Riepilogo dati:\n
    __________________________________________________ __________\n";

    //======================= NON TOCCARE NULLA... SE NON VUOI INCASINARE QUALCOSA =======================\


    ########### CODICE VARIO ###########

    //variabili per rendere lo script compatibile anche con PHP 4.2 - copyright di Chris
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
    $_POST = &$HTTP_POST_VARS;
    }

    //prendo il numero IP
    if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

    if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {

    $ipnumb = getenv("REMOTE_ADDR");

    }else {

    $ipnumb = getenv("HTTP_X_FORWARDED_FOR");

    }

    } else {

    $ipnumb = getenv("REMOTE_ADDR");
    }
    ###################################


    ########### CONTROLLO DEI CAMPI ###########
    $control_campi = 0;

    if($all_free != "y"){

    foreach($_POST as $key => $valore){

    if(in_array($key,$campi_req)){

    if(trim($valore) == ""){

    $control_campi++;

    }

    }

    }

    } else {

    $control_campi = 0;

    }

    ########### CONTROLLO EMAIL ###########
    $control_email = 0;

    if($obbligo_email == "y"){

    if(isset($_POST['email'])){

    if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

    $control_email++;

    }

    } else {

    $control_email = 0;

    }

    }

    $numero1=$_POST['numero1'];
    $numero2=$_POST['numero2'];
    if ($numero1!=null or $numero2!=null){
    if ($numero1==null){ $numero1=0;}
    if ($numero2==null){ $numero2=0;}
    $somma=$numero1+$numero2;
    }


    ########### VAI CON L'INVIO DELL'EMAIL ###########
    if($control_campi == 0){

    if($control_email == 0){

    if($control_condizioni == 0){

    foreach($_POST as $key => $valore){

    $key = ucfirst(stripslashes(trim($key)));
    $valore = stripslashes(trim($valore));
    $key = str_replace("_"," ",$key);

    if(trim($valore) == "") $valore = "Non compilato";

    $corpo .= $key .": ". $valore ."\n\n";

    }

    $corpo .= "Numero IP: $ipnumb"."\n\n";

    $corpo .= "
    __________________________________________________ __________ \n\n

    Grazie per aver utilizzato un Saibal Scriptino - Buona giornata!";


    //inizio l'invio dell'email
    mail("$destinatario","$oggetto_email","$corpo", "From: $nome_mittente <$email_mittente>");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>
    Anche se ho aggiunto :

    $numero1=$_POST['numero1'];
    $numero2=$_POST['numero2'];
    if ($numero1!=null or $numero2!=null){
    if ($numero1==null){ $numero1=0;}
    if ($numero2==null){ $numero2=0;}
    $somma=$numero1+$numero2;
    }

    non mi arriva la somma in email ma solo i due numeri inseriti nei campi del form :master: , come mai ? In piu' volevo fare in modo che lo script inviasse un file posto sul mio spazio web senza usare la classe phpmailer che la trovo molto complessa . Esiste qualche comando o script alternativo? Come posso fare?

    Grazie in anticipo a tutti quelli che mi risponderanno
    Saluti

  2. #2
    mi sembra che la variabile $somma tu non la inserisca in nessun punto del messaggio...per questo non ti arriva...
    per quanot riguarda l'invio di allegati io usa questo codice:
    Codice PHP:
    $header="";
    $msg="";
    $boundary='--' md5uniqid(time()) );
    $ctencoding="8bit";
    $subject="Invio allegato";
    $body="In allegato il documento";
    $to="DESTINATARIO";
    $from=$_POST['email'];
    $ctype="application/x-unknown-content-type";
    $basename="percorso/file.txt";
    $name=basename($basename);

    $header.="From: $from\nX-Priority: 3\nTo: $to\n";
    $header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
    $header.="Content-Transfer-Encoding: 8bit\n";

       
    $msg .="This is a multi-part message in MIME format.\n--$boundary\n";
       
    $msg .= "Content-Type: text/plain; charset=iso-8859-9\n";
       
    $msg .= "Content-Transfer-Encoding: 8bit\n\n" $body ."\n";
       
       
    $msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n";
       
    $msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n  filename=\"$name\"\n";
           
    $lineszfilesize$basename)+1;
           
    $fpfopen$basename'r' );
           
    $content chunk_split(base64_encode(fread$fp$linesz)));
           
    fclose($fp);
       
    $msg .=    chr(13) . chr(10).$content;

    $result = @mail($to,$subject,$msg."\n",$header);

    if(
    $result){
            
            echo 
    "

    Il tuo messaggio &egrave; stato inoltrato con successo!</p>

    Grazie!</p>"
    ;
        }else{
            
            echo 
    "

    E' stato riscontrato un errore sul server.
    Impossibile inviare il messaggio.</p>

    Riprova pi&ugrave; tardi.</p>"
    ;
        } 

  3. #3
    Ciao SoulHome e grazie per il reply .
    Non riesco a capire in che punto inserire $somma :master: pensavo che il codice inserito gia' bastasse a far inviare la somma dei 2 numeri .
    Per il codice di invio del file, mi puoi aiutare ad adattarlo nel send.php che ho postato ? Scusami ma non sono ancora brava abbastanza sto perdendo la testa anche se puo' sembrare semplice

  4. #4
    Nessuno mi puo' aiutare?

  5. #5
    Su vari manuali c'e' la funzione "Function somma()" posso forse utilizzarla in questo caso?
    Aiuto

  6. #6
    la funzione somma() non è una funzione nativa di php ma dovresti dfiniral tu e quindi non ti serve a nulla, per inserire al somma nel msg scrivi
    $corpo .= "Somma: $somma"."\n\n";
    subito dopo
    $corpo .= "Numero IP: $ipnumb"."\n\n";
    per quanto riguarda l'invio di allegati appena ho un po' di tempo ti modifico lo script

  7. #7
    Originariamente inviato da SoulHome
    la funzione somma() non è una funzione nativa di php ma dovresti dfiniral tu e quindi non ti serve a nulla, per inserire al somma nel msg scrivi
    $corpo .= "Somma: $somma"."\n\n";
    subito dopo
    $corpo .= "Numero IP: $ipnumb"."\n\n";
    per quanto riguarda l'invio di allegati appena ho un po' di tempo ti modifico lo script
    Grazie mille SoulHome sei stato gentilissimo, non ci sarei mai arrivata da sola :rollo: .
    Ti ringrazio anche dell'interessamento per l'invio di allegati ci sto ancora perdendo la testa senza successo

    Saluti e grazie ancora

  8. #8
    Ho provato a modificare da sola lo script integrando il tuo codice per l'invio allegati, pero' succede una cosa strana, mi arrivano 2 email: una senza allegato con tutti i dati e l'altra con mittente "apache" e con l'allegato perche'? .
    Ecco la modifica:
    <?php

    $header="";
    $msg="";
    $boundary='--' . md5( uniqid(time()) );
    $ctencoding="8bit";

    //email del destinatario del modulo
    $destinatario = "miamail@prova.it";

    //nome mittente per la corretta intestazione del modulo
    $nome_mittente = "Form di Prova";

    //email mittente per per la corretta intestazione del modulo
    $email_mittente = "mailmittente@prova.it";

    //oggetto dell'email
    $oggetto_email = "Modulo inviato dal tuo sito";

    $ctype="application/x-unknown-content-type";
    $basename="count.txt";
    $name=basename($basename);

    //$header.="From: $from\nX-Priority: 3\nTo: $to\n";
    $header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
    $header.="Content-Transfer-Encoding: 8bit\n";

    $msg .="This is a multi-part message in MIME format.\n--$boundary\n";
    $msg .= "Content-Type: text/plain; charset=iso-8859-9\n";
    $msg .= "Content-Transfer-Encoding: 8bit\n\n";

    $msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n";
    $msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n filename=\"$name\"\n";
    $linesz= filesize( $basename)+1;
    $fp= fopen( $basename, 'r' );
    $content = chunk_split(base64_encode(fread( $fp, $linesz)));
    fclose($fp);
    $msg .= chr(13) . chr(10).$content;

    $result = @mail($destinatario,$oggetto_email,$msg."\n",$head er);

    //se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y". valori possibili: "y" e "n"
    $all_free = "y";

    //se invece avete messo "n" inserire tra virgolette, separati da virgola, i nomi dei campi da rendere OBBLIGATORI
    //Esempio: $campi_req = array("telefono","via");
    $campi_req = array("nome_e_cognome","cellulare");

    //url della pagina di ringraziamento
    $pagina_grazie = "http://spinhack.altervista.org/grazie.htm";

    //url della pagina errore campi vuoti
    $pagina_error_empty = "http://spinhack.altervista.org/campi_vuoti.htm";

    //url della pagina errore email
    $pagina_error_email = "http://spinhack.altervista.org/errore_email.htm";

    //url della pagina errore condizioni non accettate
    $pagina_error_condizioni = "http://spinhack.altervista.org/errore_condizioni.htm";

    //orario e data
    $ora = date ("H:i:s");
    $data = date ("d/m/Y");

    //intestazione dell'email (arriva al destinatario)
    $corpo = "
    Modulo inviato il $data alle ore $ora\n
    Riepilogo dati:\n
    __________________________________________________ __________\n";

    //======================= NON TOCCARE NULLA... SE NON VUOI INCASINARE QUALCOSA =======================\


    ########### CODICE VARIO ###########

    //variabili per rendere lo script compatibile anche con PHP 4.2 - copyright di Chris
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
    $_POST = &$HTTP_POST_VARS;
    }

    //prendo il numero IP
    if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

    if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {

    $ipnumb = getenv("REMOTE_ADDR");

    }else {

    $ipnumb = getenv("HTTP_X_FORWARDED_FOR");

    }

    } else {

    $ipnumb = getenv("REMOTE_ADDR");
    }
    ###################################


    ########### CONTROLLO DEI CAMPI ###########
    $control_campi = 0;

    if($all_free != "y"){

    foreach($_POST as $key => $valore){

    if(in_array($key,$campi_req)){

    if(trim($valore) == ""){

    $control_campi++;

    }

    }

    }

    } else {

    $control_campi = 0;

    }

    ########### CONTROLLO EMAIL ###########
    $control_email = 0;

    if($obbligo_email == "y"){

    if(isset($_POST['email'])){

    //espressione regolare a cura dell'esimio dott. Grande Minchia - http://www.myphp.it
    if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

    $control_email++;

    }

    } else {

    $control_email = 0;

    }

    }

    $numero1=$_POST['numero1'];
    $numero2=$_POST['numero2'];
    if ($numero1!=null or $numero2!=null){
    if ($numero1==null){ $numero1=0;}
    if ($numero2==null){ $numero2=0;}
    $somma=$numero1+$numero2;
    }


    ########### VAI CON L'INVIO DELL'EMAIL ###########
    if($control_campi == 0){

    if($control_email == 0){

    if($control_condizioni == 0){

    foreach($_POST as $key => $valore){

    $key = ucfirst(stripslashes(trim($key)));
    $valore = stripslashes(trim($valore));
    $key = str_replace("_"," ",$key);

    if(trim($valore) == "") $valore = "Non compilato";

    $corpo .= $key .": ". $valore ."\n\n";

    }

    $corpo .= "Numero IP: $ipnumb"."\n\n";

    $corpo .= "Somma: $somma"."\n\n";

    $corpo .= "
    __________________________________________________ __________ \n\n

    Grazie per aver utilizzato un Saibal Scriptino - Buona giornata!";


    //inizio l'invio dell'email
    mail("$destinatario","$oggetto_email","$corpo", "From: $nome_mittente <$email_mittente>");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>
    Devo forse specificare qualche altra variabile?
    Saluti grazie

  9. #9
    Ho provato a fondere i due campi:

    $result = @mail($destinatario,$oggetto_email,$msg."\n",$head er);
    e
    mail("$destinatario","$oggetto_email","$corpo", "From: $nome_mittente <$email_mittente>");
    in modo che diventassero:

    mail($destinatario,$oggetto_email,$msg."\n",$heade r, "From: $nome_mittente <$email_mittente>");
    ma la mail in questo modo non arriva :master: , impiega anche un po di tempo prima che elabori il file send.php...
    Qualche suggerimento ?
    Aiuto

  10. #10

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.