Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    3

    Form Mail con upload file

    Ciao a tutti ragazzi (:
    Mi sto da poco addentrando nel php, così mi rivolgo a voi sicuramente più esperti di me..
    Ho bisogno di creare un form che oltre all'invio dati permetta l'invio come allegato via mail di file.
    Ma non avendo minimamente idea di come fare vi incollo ciò che ho scritto sperando che qualcuno di voi mi sappia illuminare:

    Ecco l'html del form:

    codice:
    <form name="contactform" method="post" action="process.php" ENCTYPE="multipart/form-data">
                    
    
    
                       <label for="nome"></label>
                       <input type="text" name="nome" id="nome" /> 
                       Nome
                    
    
                    
    
                    <label for="cognome"></label>
                       <input type="text" name="cognome" id="cognome" />
                       Cognome
    
    
                    <label for="email"></label>
                       <input type="text" name="email" id="email" />
                       Email
    
    
                    <label for="telefono"></label>
                       <input type="text" name="telefono" id="telefono" />
                       Telefono
    
    
                    <label for="idpaypal"></label>
                       <input type="text" name="idpaypal" id="idpaypal" />
                       ID Transazione Paypal</p>
                       
    
    Descrizione bozze e dati da inserire:
    
                      <label for="dati"></label>
                      <textarea name="dati" id="dati" cols="45" rows="11"></textarea>
                      
    
    
                      <label for="quantita"></label>
                      <input type="text" name="quantita" id="quantita" />
                      Quantità pacchetti
    
                      <label for="pacchetto">
    
                      </label>
                      <select name="pacchetto" id="pacchetto">
                      	<option>Base Pack € 59,00+iva</option>
                            <option>Base Pack Plus € 79,00+iva</option>
    						<option>Business Pack € 200,00+iva</option>
    						<option>Business Pack Plus € 290,00+iva</option>
                      </select>
                      
    
    
                      <label for="file"></label>
                      <input type="file" name="file" id="file" />
                    </p>
                    
    
    
                      <input type="submit" name="invia" id="invia" value="Invia" />
                      
    
                    </p>
    			</form>
    Invece questo è il process.php:

    Codice PHP:
    <?php
    if(isset($_POST['email'])) {
         
        
    // EDIT THE 2 LINES BELOW AS REQUIRED
        
    $email_to "sav-luis@hotmail.it";
        
    $email_subject "Ordine - LS Grafica Website";
         
         
        function 
    died($error) {
            
    // your error code can go here
            
    echo "Siamo spiacenti, ma si è verificato un errore con il form inviato. ";
            echo 
    "Ecco riportati i seguenti errori:.

    "
    ;
            echo 
    $error."

    "
    ;
            echo 
    "Siete pregati di compilare il form correttamente.

    "
    ;
            die();
        }
         
        
    // validation expected data exists
        
    if(!isset($_POST['nome']) ||
            !isset(
    $_POST['cognome']) ||
            !isset(
    $_POST['email']) ||
            !isset(
    $_POST['telefono']) ||
            !isset(
    $_POST['idpaypal']) ||
            !isset(
    $_POST['dati']) ||
            !isset(
    $_POST['quantita']) ||
            !isset(
    $_POST['pacchetto'])) {
            
    died('Siamo spiacenti, ma si è verificato un errore con il form inviato.');       
        }
         
        
    $nome $_POST['nome']; // required
        
    $cognome $_POST['cognome']; // required
        
    $email $_POST['email']; // required
        
    $telefono $_POST['telefono']; // required
        
    $idpaypal $_POST['idpaypal']; // required
        
    $dati $_POST['dati']; // not required
        
    $quantita $_POST['quantita']; // required
        
    $pacchetto $_POST['pacchetto']; // required
         
        
    $error_message "";
        
    $email_exp '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
      if(!
    preg_match($email_exp,$email)) {
        
    $error_message .= 'Indirizzo email non valido. Controllare la mail inserita. 
    '
    ;
      }
        
    $string_exp "/^[A-Za-z .'-]+$/";
      if(!
    preg_match($string_exp,$nome)) {
        
    $error_message .= 'Nome inserito non valido. 
    '
    ;
      }
      if(!
    preg_match($string_exp,$cognome)) {
        
    $error_message .= 'Cognome inserito non valido. 
    '
    ;
      }
      if(
    strlen($error_message) > 0) {
        
    died($error_message);
      }
        
    $email_message "Dettagli form di seguito: \n\n";
         
        function 
    clean_string($string) {
          
    $bad = array("content-type","bcc:","to:","cc:","href");
          return 
    str_replace($bad,"",$string);
        }
         
        
    $email_message .= "Nome: ".clean_string($nome)."\n";
        
    $email_message .= "Cognome: ".clean_string($cognome)."\n";
        
    $email_message .= "Email: ".clean_string($email)."\n";
        
    $email_message .= "Telefono: ".clean_string($telefono)."\n";
        
    $email_message .= "ID Transazione Paypal: ".clean_string($idpaypal)."\n";
        
    $email_message .= "Dati: ".clean_string($dati)."\n";
        
    $email_message .= "Quantità: ".clean_string($quantita)."\n";
        
    $email_message .= "Pacchetto Scelto: ".clean_string($pacchetto)."\n";
         
         
    // create email headers
    $headers 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' phpversion();
    @
    mail($email_to$email_subject$email_message$headers);  
    ?>
     

     
    Grazie per l'acquisto. Verrai ricontattato al più presto.
    [url="promo.html"]--- Torna alla pagina PROMO --- [/url]
     
    <?php
    }
    ?>
    </body>
    </html>
    Sapreste dirmi cosa devo aggiungere e dove per favore (cercando di non scombussolare il mondo )?
    Vi ringrazio (:
    Savy

  2. #2
    Ciao ecco il process.php modificato per inviare un file in allegato.
    codice:
    	<?php
    if(isset($_POST['email'])) {
         
        // EDIT THE 2 LINES BELOW AS REQUIRED
        $email_to = "********************";
        $email_subject = "Ordine - LS Grafica Website";
         
         
        function died($error) {
            // your error code can go here
            echo "Siamo spiacenti, ma si è verificato un errore con il form inviato. ";
            echo "Ecco riportati i seguenti errori:.
    
    ";
            echo $error."
    
    ";
            echo "Siete pregati di compilare il form correttamente.
    
    ";
            die();
        }
         
        // validation expected data exists
        if(!isset($_POST['nome']) ||
            !isset($_POST['cognome']) ||
            !isset($_POST['email']) ||
            !isset($_POST['telefono']) ||
            !isset($_POST['idpaypal']) ||
            !isset($_POST['dati']) ||
            !isset($_POST['quantita']) ||
            !isset($_POST['pacchetto'])) {
            died('Siamo spiacenti, ma si è verificato un errore con il form inviato.');       
        }
         
        $nome = $_POST['nome']; // required
        $cognome = $_POST['cognome']; // required
        $email = $_POST['email']; // required
        $telefono = $_POST['telefono']; // required
        $idpaypal = $_POST['idpaypal']; // required
        $dati = $_POST['dati']; // not required
        $quantita = $_POST['quantita']; // required
        $pacchetto = $_POST['pacchetto']; // required
         
        $error_message = "";
        $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
      if(!preg_match($email_exp,$email)) {
        $error_message .= 'Indirizzo email non valido. Controllare la mail inserita. 
    ';
      }
        $string_exp = "/^[A-Za-z .'-]+$/";
      if(!preg_match($string_exp,$nome)) {
        $error_message .= 'Nome inserito non valido. 
    ';
      }
      if(!preg_match($string_exp,$cognome)) {
        $error_message .= 'Cognome inserito non valido. 
    ';
      }
      if(strlen($error_message) > 0) {
        died($error_message);
      }
      
      
      
         
        function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
        }
    	
    	    $email_message = "Dettagli form di seguito: \n\n";
        $email_message .= "Nome: ".clean_string($nome)."\n";
        $email_message .= "Cognome: ".clean_string($cognome)."\n";
        $email_message .= "Email: ".clean_string($email)."\n";
        $email_message .= "Telefono: ".clean_string($telefono)."\n";
        $email_message .= "ID Transazione Paypal: ".clean_string($idpaypal)."\n";
        $email_message .= "Dati: ".clean_string($dati)."\n";
        $email_message .= "Quantità: ".clean_string($quantita)."\n";
        $email_message .= "Pacchetto Scelto: ".clean_string($pacchetto)."\n";
    	
    	
      $attachment = $_FILES['file']['tmp_name'];
      $attachment_type = $_FILES['file']['type'];
      $attachment_name = $_FILES['file']['name'];
      
    $intestazioni = "From: " . $email_from;
      if (is_uploaded_file($attachment))
      {
      $file = fopen($attachment,'rb');
      $data = fread($file, filesize($attachment));
      fclose($file);
      $data = chunk_split(base64_encode($data));
      $rand = md5(time());
      $boundary = "==Multipart_Boundary_x{$rand}x";
      
      $intestazioni .= "\nMIME-Version: 1.0\n";
      $intestazioni .= "Content-Type: multipart/mixed;\n";
      $intestazioni .= " boundary=\"{$boundary}\"";
      
      $messaggio = "This is a multi-part message in MIME format.\n\n";
      $messaggio .= "--{$boundary}\n";
      $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
      $messaggio .= $email_message . "\n\n";
      $messaggio .= "--{$boundary}\n";
      $messaggio .= "Content-Disposition: attachment;\n";
      $messaggio .= " filename=\"{$attachment_name}\"\n";
      $messaggio .= "Content-Transfer-Encoding: base64\n\n";
      $messaggio .= $data . "\n\n";
      $messaggio .= "--{$boundary}--\n";
      }
      else {
    	  // create email headers
    $intestazioni = 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    
    $messaggio=$email_message;
      }
      
      
    
      
         
    
      
    @mail($email_to, $email_subject, $messaggio, $intestazioni);  
    ?>
     
    
     
    Grazie per l'acquisto. Verrai ricontattato al più presto.
    --- Torna alla pagina PROMO --- 
     
    <?php
    }
    ?>
    </body>
    </html>
    Saluti
    Davide
    Davide Granata
    Web Developer
    www.davidepc.com

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    3
    Originariamente inviato da frizzo28
    Ciao ecco il process.php modificato per inviare un file in allegato.
    codice:
    	<?php
    if(isset($_POST['email'])) {
         
        // EDIT THE 2 LINES BELOW AS REQUIRED
        $email_to = "********************";
        $email_subject = "Ordine - LS Grafica Website";
         
         
        function died($error) {
            // your error code can go here
            echo "Siamo spiacenti, ma si è verificato un errore con il form inviato. ";
            echo "Ecco riportati i seguenti errori:.
    
    ";
            echo $error."
    
    ";
            echo "Siete pregati di compilare il form correttamente.
    
    ";
            die();
        }
         
        // validation expected data exists
        if(!isset($_POST['nome']) ||
            !isset($_POST['cognome']) ||
            !isset($_POST['email']) ||
            !isset($_POST['telefono']) ||
            !isset($_POST['idpaypal']) ||
            !isset($_POST['dati']) ||
            !isset($_POST['quantita']) ||
            !isset($_POST['pacchetto'])) {
            died('Siamo spiacenti, ma si è verificato un errore con il form inviato.');       
        }
         
        $nome = $_POST['nome']; // required
        $cognome = $_POST['cognome']; // required
        $email = $_POST['email']; // required
        $telefono = $_POST['telefono']; // required
        $idpaypal = $_POST['idpaypal']; // required
        $dati = $_POST['dati']; // not required
        $quantita = $_POST['quantita']; // required
        $pacchetto = $_POST['pacchetto']; // required
         
        $error_message = "";
        $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
      if(!preg_match($email_exp,$email)) {
        $error_message .= 'Indirizzo email non valido. Controllare la mail inserita. 
    ';
      }
        $string_exp = "/^[A-Za-z .'-]+$/";
      if(!preg_match($string_exp,$nome)) {
        $error_message .= 'Nome inserito non valido. 
    ';
      }
      if(!preg_match($string_exp,$cognome)) {
        $error_message .= 'Cognome inserito non valido. 
    ';
      }
      if(strlen($error_message) > 0) {
        died($error_message);
      }
      
      
      
         
        function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
        }
    	
    	    $email_message = "Dettagli form di seguito: \n\n";
        $email_message .= "Nome: ".clean_string($nome)."\n";
        $email_message .= "Cognome: ".clean_string($cognome)."\n";
        $email_message .= "Email: ".clean_string($email)."\n";
        $email_message .= "Telefono: ".clean_string($telefono)."\n";
        $email_message .= "ID Transazione Paypal: ".clean_string($idpaypal)."\n";
        $email_message .= "Dati: ".clean_string($dati)."\n";
        $email_message .= "Quantità: ".clean_string($quantita)."\n";
        $email_message .= "Pacchetto Scelto: ".clean_string($pacchetto)."\n";
    	
    	
      $attachment = $_FILES['file']['tmp_name'];
      $attachment_type = $_FILES['file']['type'];
      $attachment_name = $_FILES['file']['name'];
      
    $intestazioni = "From: " . $email_from;
      if (is_uploaded_file($attachment))
      {
      $file = fopen($attachment,'rb');
      $data = fread($file, filesize($attachment));
      fclose($file);
      $data = chunk_split(base64_encode($data));
      $rand = md5(time());
      $boundary = "==Multipart_Boundary_x{$rand}x";
      
      $intestazioni .= "\nMIME-Version: 1.0\n";
      $intestazioni .= "Content-Type: multipart/mixed;\n";
      $intestazioni .= " boundary=\"{$boundary}\"";
      
      $messaggio = "This is a multi-part message in MIME format.\n\n";
      $messaggio .= "--{$boundary}\n";
      $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
      $messaggio .= $email_message . "\n\n";
      $messaggio .= "--{$boundary}\n";
      $messaggio .= "Content-Disposition: attachment;\n";
      $messaggio .= " filename=\"{$attachment_name}\"\n";
      $messaggio .= "Content-Transfer-Encoding: base64\n\n";
      $messaggio .= $data . "\n\n";
      $messaggio .= "--{$boundary}--\n";
      }
      else {
    	  // create email headers
    $intestazioni = 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    
    $messaggio=$email_message;
      }
      
      
    
      
         
    
      
    @mail($email_to, $email_subject, $messaggio, $intestazioni);  
    ?>
     
    
     
    Grazie per l'acquisto. Verrai ricontattato al più presto.
    --- Torna alla pagina PROMO --- 
     
    <?php
    }
    ?>
    </body>
    </html>
    Saluti
    Davide
    Grazie mille! ci avevo perso le speranze che qualcuno mi rispondesse (:
    funziona tutto alla grande..anzi mi pare di aver inviato per sbaglio una mail a te xD
    Cmq ho sistemato tutto!
    Ti ringrazio ancora..ciao!
    Savy

  4. #4
    Si mail ricevuta per sbaglio avevo messo il mio indirizzo per provare e poi non l'ho rimodificato

    P.S. Chiedo ad un moderatore di eliminare la mia mail dal codice da me postato sul forum altrimenti rischio di ricevere spam
    Davide Granata
    Web Developer
    www.davidepc.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    3
    Originariamente inviato da frizzo28
    Si mail ricevuta per sbaglio avevo messo il mio indirizzo per provare e poi non l'ho rimodificato

    P.S. Chiedo ad un moderatore di eliminare la mia mail dal codice da me postato sul forum altrimenti rischio di ricevere spam
    ma se volessi mettere "Grazie per l'acquisto. Verrai ricontattato al più presto" in una pagina a parte e che quindi l'utente venga rimandato direttamente a quella pagina c'è molto da cambiare? scusa la rottura
    Savy

  6. #6
    Ciao
    Basta che aggiungi al posto del messaggio "Grazie per l'acquisto. Verrai ricontattato al più presto" questo codice:
    codice:
    <?php header("location: grazie.html"); ?>
    Ovviamente sostituisci grazie.html con il nome della pagina a cui vuoi reindirizzare l'utente


    P.s. Ringrazio i moderatori per aver eliminato la mia mail dal codice
    Saluti
    Davide
    Davide Granata
    Web Developer
    www.davidepc.com

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.