- Home
- Categorie
- Coding e Sistemistica
- PHP
- Inviare file image con php
-
Inviare file image con php
:bho:
Salve, ho creato un form per iscrizione in php e l'originale va ma appena aggiungo i miei dati non va più. C'è qualcuno che sa aiutarmi? Vi allego il tutto, quello evidenziato in rosso è quello che ho aggiunto.<form method="post" action="invio_emailwebmaster.php" enctype="multipart/form-data" onsubmit="return FrontPage_Form1_Validator(this)" language="JavaScript" name="FrontPage_Form1"> <div class="style2"> <table style="width: 74%"> <tr> <td style="width: 149px"> <input name="Image1" type="image" src="../../Modulo%20registrazione/Nick%20Name.gif" width="109" height="31" /></td> <td> <!--webbot bot="Validation" s-display-name="Attenzione inserire Nick Name Campo obbligatorio" b-value-required="TRUE" i-maximum-length="256" --><input name="NickName" type="text" size="30" maxlength="256" /></td> </tr> <tr> <td style="width: 149px"> <input name="Image2" type="image" src="../../Modulo%20registrazione/Città.gif" width="67" height="35" /></td> <td> <input name="Citta" type="text" size="30" /></td> </tr> <tr> <td style="width: 149px"> <input name="Image3" type="image" src="../../Modulo%20registrazione/Regione.gif" width="93" height="31" /></td> <td> <!--webbot bot="Validation" s-display-name="Attenzione inserire la Regione Campo obbligatorio" b-value-required="TRUE" b-disallow-first-item="TRUE" --><select name="Regione"> <option>Seleziona</option> <option value="Piemonte">Piemonte</option> <option value="Lombardia">Lombardia</option> <option value="Valle d Aosta">Valle d Aosta</option> <option value="Liguria">Liguria</option> <option value="Trentino Alto Adige">Trentino Alto Adige </option> <option value="Friuli Venezia Giulia">Friuli Venezia Giulia </option> <option value="Emilia Romagna">Emilia Romagna</option> <option value="Toscana">Toscana</option> <option value="Basilicata">Basilicata</option> <option value="Calabria">Calabria</option> <option value="Campania">Campania</option> <option value="Lazio">Lazio</option> <option value="Marche">Marche</option> <option value="Molise">Molise</option> <option value="Puglia">Puglia</option> <option value="Sardegna">Sardegna</option> <option value="Sicilia">Sicilia</option> <option value="Umbria">Umbria</option> <option value="Veneto">Veneto</option> <option value="Abruzzo">Abruzzo</option> <option value="Estero">Estero</option> </select></td> </tr> <tr> <td style="width: 149px"> <input name="Image8" type="image" src="../../Modulo%20registrazione/Categoria.gif" width="106" height="31" /></td> <td> <!--webbot bot="Validation" s-display-name="Attenzione inserire la Categoria Campo obbligatorio" b-value-required="TRUE" b-disallow-first-item="TRUE" --><select name="Siamo_Sono"> <option>Seleziona</option> <option value="Singola">Singola</option> <option value="Singolo">Singolo</option> </select></td> </tr> <tr> <td style="width: 149px"> <input name="Image4" type="image" src="../../Modulo%20registrazione/E-%20Mail.gif" width="86" height="31" /></td> <td> <!--webbot bot="Validation" s-display-name="Attenzione inserire E-Mail Campo obbligatorio" b-value-required="TRUE" i-maximum-length="256" --><input name="email" type="text" size="30" maxlength="256" /></td> </tr> <tr> <td style="width: 149px"> <input name="Image5" type="image" src="../../Modulo%20registrazione/Password.gif" width="108" height="31" /></td> <td> <input name="Password" type="password" size="15" /></td> </tr> <tr> <td style="width: 149px"> <input name="Image6" type="image" src="../../Modulo%20registrazione/conferma%20password.gif" width="144" height="31" /></td> <td> <input name="Conferma_Password" type="password" size="15" /></td> </tr> <tr> <td style="width: 149px"> <input name="Image7" type="image" src="../../Modulo%20registrazione/Siti%20Personale.gif" width="138" height="31" /></td> <td> <input name="Sito_Personale" type="text" size="50" /></td> </tr> </table> <br /> <br /> <table style="width: 100%"> <tr> <td class="style1"> <input name="Image9" type="image" src="../../Modulo%20registrazione/testo%20annuncio.gif" width="219" height="49" /></td> </tr> <tr> <td> <!--webbot bot="Validation" s-display-name="Attenzione inserire il testo Annuncio Campo obbligatorio" b-value-required="TRUE" --><textarea name="Testo_Annucio" cols="100" rows="10"></textarea></td> </tr> </table> <br /> &n bsp; &nbs p; &n bsp; &nbs p; &n bsp; &nbs p;   ; <br /> <br /> <input name="allegato" type="file" /><br /> <br /> <br /> <table style="width: 127%"> <tr> <td colspan="2"> <input name="Image10" type="image" src="../../../image/il%20tuo%20profilo.gif" width="333" height="57" /><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="style30"><span class="style20"><em><br /> <strong>Queste informazioni saranno visibili nel profilo </strong></em></span></span></font></td> </tr> <tr> <td style="width: 195px"> </td> <td style="width: 618px"> </td> </tr> <tr> <td class="style31" style="width: 195px"> <font color="#333333" face="Verdana, Arial, Helvetica, sans-serif"> <span class="style49"> <em>Hobby fotografia/video :</em></span></font> </td> <td style="width: 618px"><select name="Hobby"> <option>Seleziona</option> <option value="Foto">Foto</option> <option value="Video">Video</option> <option value="Foto e Video">Foto e Video</option> <option value="Altro">Altro</option> <option value="Nulla">Nulla</option> </select> </td> </tr> <tr> <td class="style31" style="width: 195px"> <font color="#333333" face="Verdana, Arial, Helvetica, sans-serif"> <span class="style49"> <em>Mail per Contatto MSN :</em></span></font> </td> <td style="width: 618px"> <input name="Mail_MSN" type="text" size="30" /> </td> </tr> <tr> <td class="style31" style="width: 195px"> <font color="#333333" face="Verdana, Arial, Helvetica, sans-serif"> <span class="style49"> <strong> <em>Skype :</em></strong></span></font> </td> <td style="width: 618px"> <input name="Skype" type="text" size="30" /> </td> </tr> <tr> <td class="style31" style="width: 195px"> <font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif"> <b><strong> <em><span class="style48">Cellulare </span> </em> <span class="style30"> <span class="style47"> <em>: (Facoltativo)</em></span></span></strong></b></font> </td> <td style="width: 618px"> <input name="Telefono" type="text" size="30" /> </td> </tr> </table> <br /> <table style="width: 127%"> <tr> <td class="style1"> <input name="Image11" type="image" src="../../Modulo%20registrazione/dichiara.gif" width="384" height="49" /> </td> </tr> <tr> <td class="style1"> <textarea name="Regolamento" cols="50" rows="5">Con la richiesta di registrazione dichiaro: Tutela della privacy. </textarea> </td> </tr> </table> <br /> <table style="width: 128%"> <tr> <td class="style1"> <font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif"> <b><strong><em>Da spuntare per Accettazione di una Nuova registrazione</em></strong></b></font> </td> </tr> <tr> <td class="style1"> <input name="Conferma_Dichiarazione_Regolamento" type="checkbox" value="Ok Accetto il Regolamento" style="height: 21px; width: 22px" /></td> </tr> </table> <br /> <table style="width: 128%"> <tr> <td class="style1"> <input type="submit" value="Invia Modulo" /> </td> <td class="style1"> <input type="reset" value="Cancella" /> </td> </tr> </table> <br /> </div> </form>
E questa è la pagina php invio_emailwebmaster.php modificata da me, l'originale e senza i punti in rosso.
<?php // Recupero il valore dei campi del form $destinatario = $_POST['[email protected]']; $mittente = $_POST['[email protected]']; $oggetto = $_POST['Nuovo Annuncio']; $messaggio = $_POST['NickName']; $messaggio .= $_POST['Citta']; $messaggio .= $_POST['Regione']; $messaggio .= $_POST['Siamo_Sono']; $messaggio .= $_POST['Password']; $messaggio .= $_POST['Conferma_Password']; $messaggio .= $_POST['Sito_Personale']; $messaggio .= $_POST['Testo_Annucio']; $messaggio .= $_POST['Hobby']; $messaggio .= $_POST['Mail_MSN']; $messaggio .= $_POST['Skype']; $messaggio .= $_POST['Telefono']; $messaggio .= $_POST['Conferma_Dichiarazione_Regolamento']; $messaggio .= $_POST['Regolamento']; // Valorizzo le variabili relative all'allegato $allegato = $_FILES['allegato']['tmp_name']; $allegato_type = $_FILES['allegato']['type']; $allegato_name = $_FILES['allegato']['name']; // 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" $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 "<p>Mail inviata con successo!</p>"; }else{ echo "<p>Errore!</p>"; } ?>
-
Perchè invece di costruire a mano il contenuto dell'email non utilizzi una delle tante classi già pronte (es. phpmailer)?