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

    Form di invio email + alelgato che non va.

    Ho messo assieme questo codice per l'invio di email con allegati dalla dimensione massima di 500000b.
    Inizialmente funzionava... poi facendo delle modifiche non va più. Sapete aiutarmi?

    IL FORM
    codice:
    <div id="form">
    <form name="invioemail" action="http://mioindirizzo.it" method="POST" enctype="multipart/form-data">
        			
    <input name="destinatario" type="hidden" value="mia@email.it">
                    
    <input name="nome" type="text" border="0" style="Verdana" value="" size="30">
    <input name="cognome" type="text" border="0" style="Verdana" value="" size="30">
    <input name="provenienza" type="text" border="0" style="Verdana" value="" size="30">
    
    <input name="mittente" type="text" border="0" style="Verdana" value="" size="30">
    <input name="oggetto" type="text" border="0" style="Verdana" value="" size="30">
              	
    <input type="file" name="allegato" size="30">
    <input name="maxsizefile" type="hidden" value="500000">
    <textarea name="messaggio" class="inputTextarea" rows="10" cols="70"></textarea>
    
    <input class="button"  width="130" name="button" type="submit" border="0" value="Invia l'email">
    				
    </form>
    IL CODICE DI INVIO PHP
    codice:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $provenienza = $_POST['provenienza'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];
    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];
    $allegato_size = $_FILES['allegato']['size'];
    $maxsizefile = $_POST['maxsizefile'];
    
    
    //*CONTROLLA INSERIMENTO VALORI*/
    //*CONDIZIONE: se se il file allegato eccede le dimensioni massime consentite*///
    if( $allegato_size > $maxsizefile ){
    	echo "<h2 style=\"text-align:center;\">Invio email non effettuato.</h2>
    
    Il file inserito eccede le dimensioni massime consentite!
    <a href=\"javascript:(window.history.back(-1))\">Ritenta l'inserimento</a>.</p>";
    						
    //*CONDIZIONE: se i campi obbligatori sono stati riempiti*///
    } elseif (trim($mittente) == "" OR trim($nome) == "" OR trim($cognome) == "" OR trim($oggetto) == "" OR trim($allegato) == "" OR trim($messaggio) == ""){
    	echo "<h2 style=\"text-align:center;\">Invio email non effettuato.</h2>
    
    I campi obbligatori devono essere riempiti!
    <a href=\"javascript:(window.history.back(-1))\">Ritenta l'inserimento</a>.</p>";
    
    //*SE TUTTO E' OK
    } else {
    
    	//*ANNULLA VIRGOLETTE E APICI
    	$mittente=addslashes(stripslashes($titolo));
    	$nome=addslashes(stripslashes($giorno));
    	$cognome=addslashes(stripslashes($mese));
    	$provenienza=addslashes(stripslashes($anno));
    	$oggetto=addslashes(stripslashes($luogo));
    	$messaggio=addslashes(stripslashes($testo));
    
    	//*SISTEMA < >
    	$mittente = str_replace("<", "&lt;", $titolo);
    	$mittente = str_replace(">", "&gt;", $titolo);
    	$nome = str_replace("<", "&lt;", $giorno);
    	$nome = str_replace(">", "&gt;", $giorno);
    	$cognome = str_replace("<", "&lt;", $mese);
    	$cognome = str_replace(">", "&gt;", $mese);
    	$provenienza = str_replace("<", "&lt;", $anno);
    	$provenienza = str_replace(">", "&gt;", $anno);
    	$oggetto = str_replace("<", "&lt;", $luogo);
    	$oggetto = str_replace(">", "&gt;", $luogo);
    	$messaggio = str_replace("<", "&lt;", $testo);
    	$messaggio = str_replace(">", "&gt;", $testo);
    
    	
    	// Creo 2 variabili che riempirò più avanti...
    	$headers = "From: " . $mittente;
    	$msg = "";
    	
    	// Verifico se il file è stato caricato correttamente via HTTP
    	// In caso affermativo proseguo nel lavoro...
    	if (is_uploaded_file($allegato))
    	{
    	  // Apro e leggo il file allegato
    	  $file = fopen($allegato,'rb');
    	  $data = fread($file, filesize($allegato));
    	  fclose($file);
    	
    	  // Adatto il file al formato MIME base64 usando base64_encode
    	  $data = chunk_split(base64_encode($data));
    	
    	  // Genero il "separatore"
    	  // Serve per dividere, appunto, le varie parti del messaggio.
    	  // Nel nostro caso separerà la parte testuale dall'allegato
    	  $semi_rand = md5(time());
    	  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    	  
    	  // Aggiungo le intestazioni necessarie per l'allegato
    	  $headers .= "\nMIME-Version: 1.0\n";
    	  $headers .= "Content-Type: multipart/mixed;\n";
    	  $headers .= " boundary=\"{$mime_boundary}\"";
    	
    	  // Definisco il tipo di messaggio (MIME/multi-part)
    	  $msg .= "This is a multi-part message in MIME format.\n\n";
    	
    	  // Metto il separatore
    	  $msg .= "--{$mime_boundary}\n";
    	
    	  // Questa è la parte "testuale" del messaggio
    	  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    	  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    	  $msg .= $messaggio . "\n\n";
    	
    	  // Metto il separatore
    	  $msg .= "--{$mime_boundary}\n";
    	
    	  // Aggiungo l'allegato al messaggio
    	  $msg .= "Content-Disposition: attachment;\n";
    	  $msg .= " filename=\"{$allegato_name}\"\n";
    	  $msg .= "Content-Transfer-Encoding: base64\n\n";
    	  $msg .= $data . "\n\n";
    	
    	  // chiudo con il separatore
    	  $msg .= "--{$mime_boundary}--\n";
    	}
    	else
    	{
    	  $msg = $messaggio;
    	}
    	
    	// Invio la mail
    	if (mail($destinatario, $oggetto, $msg, $headers))
    	{
    		echo "<h2 style=\"text-align:center;\">Invio email effettuato.</h2>
    
    I contenuti sono stati inoltrati come segue:</p>";
    	} else {
    		echo "<h2 style=\"text-align:center;\">Invio email non effettuato.</h2>
    
    Invio non riuscito! <a href=\"javascript:(window.history.back(-1))\">Ritenta l'invio</a>.</p>";
    	}
    	
    }			
    ?>
    All'uomo non verrà mai tanto male quanto dall'uomo.

  2. #2
    up ^_^
    All'uomo non verrà mai tanto male quanto dall'uomo.

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.