[PHP] inviare form con allegato tramite una mail

iper00

Nuovo Utente
19 Feb 2019
1
0
1
Salve giovani.
Sono nuovo ed ho un piccolisssssimo problema!
Ho creato questo form da un sito che te li crea da zero, in html e con un php provvedo all'invio su un indirizzo email che ho scelto. Fin qui tutto bene! Il problema è la possibilità di mettere un allegato nell'html.....ho seguito varie guide sia qui che in giro su internet. Ma quando credevo di esserci riuscito, mi sbagliavo!
E' una sensazione orribile, che solo Voi potete comprendere :(
Ve ne sarei grato se ci dareste un'occhiata:

HTML

Codice:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>INTESTAZIONE</title>
<link rel="stylesheet" type="text/css" href="view.css" media="all">
<script type="text/javascript" src="view.js"></script>

</head>
<body id="main_body" >
  
    <div align="center"><img id="top" src="top.png" alt=""></div>
    <div id="form_container">
    <form action="elabora_.php" method="post" name = "utente" enctype="multipart/form-data">
        <h1><a>SOCIETA'</a></h1>
        <form id="form_47688" class="appnitro" enctype="multipart/form-data" method="post" action="">
                    <div class="form_description">
        <div align="center"><img src="logocapital.png"></div>
            <div align="center"><p>Servizio Assistenza Dipendenti</p></div>
        </div>                     
            <ul >
                    <li id="li_6" >
        <label class="description" for="element_6">CANTIERE DI APPARTENENZA </label>
        <div>
        <select class="element select medium" id="element_6" name="element_6">
            <option value="" selected="selected" required></option>
<option value="CANTIERE  DI APPARTENENZA" >CANTIERE DI APPARTENENZA</option>
<option value="ALTRO" >ALTRO - SPECIFICARE NEI DETTAGLI</option>
        </select>
        </div>
        </li>        <li id="li_2" >
        <label class="description" for="element_2">NUMERO POSIZIONE </label>
        <div>
            <input id="element_2" name="element_2" class="element text small" type="text" maxlength="5" value="" required pattern="[0-9]{1,5}"/>
        </div><p class="guidelines" id="guide_2"><small>Il numero di posizione è presente sulla Sua busta paga, in alto a sinistra.</small></p>
        </li>        <li id="li_1" >
        <label class="description" for="element_1">COGNOME E NOME </label>
        <div>
            <input id="element_1" name="element_1" class="element text medium" type="text" maxlength="255" value="" required pattern="[A-Z ]+" onkeyup="this.value = this.value.toUpperCase();"/>
        </li>        <li id="li_4" >
        <label class="description" for="element_4">NUMERO DI TELEFONO </label>
        <div>
            <input id="element_4" name="element_4" class="element text medium" type="text" maxlength="255" value="" required pattern="[0-9]+"/>
        </div>
        </li>        <li id="li_5" >
        <label class="description" for="element_5">EMAIL </label>
        <div>
            <input id="element_5" name="element_5" class="element text medium" type="text" maxlength="255" value="" required pattern="[email protected]+..+[a-z]"/>
        </div>
        </li>        <li id="li_7" >
        <label class="description" for="element_7">TIPO DI ASSISTENZA </label>
        <span>
            <input id="element_7_1" name="element_7" class="element radio" type="radio" value="ERRORE IN BUSTA PAGA" required/>
<label class="choice" for="element_7_1">ERRORE IN BUSTA PAGA</label>
        </span>
        </li>        <li id="li_3" >
        <label class="description" for="element_3">DETTAGLIO </label>
        <div>
            <textarea id="element_3" name="element_3" class="element textarea large"required pattern="[A-Z ]+" onkeyup="this.value = this.value.toUpperCase();"></textarea>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="allegato" /></td>
</tr> 
                <li class="buttons">
 
                <input type="hidden" name="form_id" value="47688"/>
              
                <input id="saveForm" class="button_text" type="submit" name="invia" value="INVIA"/>
                <input id="reset" class="button_text" type="reset" name="cancella" value="CANCELLA"/>
                <li class="buttons">
PHP:
<html lang="it">
<head>

<meta charset="utf-8">
<title>INTESTAZIONE</title>
<link rel="stylesheet" href="stili.css">
</head>
<body>
<?php
$mail_to = "[email protected]";
$mail_subject = "RICHIESTA ASSISTENZA - ".$_POST['element_6'];
$mail_body .= "\n POSIZIONE: " .$_POST['element_2']. " \n";
$mail_body .= "\n NOMINATIVO: " .$_POST['element_1']. " \n";
$mail_body .= "\n CANTIERE: " .$_POST['element_6']. " \n";
$mail_body .= "\n EMAIL: " .$_POST['element_5']. " \n";
$mail_body .= "\n NUMERO DI TELEFONO: " .$_POST['element_4']. " \n";
$mail_body .= "\n TIPO DI ASSISTENZA: " .$_POST['element_7']. " \n";
$mail_body .= "\n DETTAGLIO: " .$_POST['element_3']. " \n";
$mittente .= "From: <".$_POST['element_1'].">\n";
$mail_body = stripslashes($mail_body);
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];
if (is_uploaded_file($allegato))
{
  $file = fopen($allegato,'rb');
  $data = fread($file, filesize($allegato));
  fclose($file);
  $data = chunk_split(base64_encode($data));
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " boundary=\"{$mime_boundary}\"";
  $msg .= "This is a multi-part message in MIME format.\n\n";
  $msg .= "--{$mime_boundary}\n";
  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
  $msg .= $mail_body . "\n\n";
  $msg .= "--{$mime_boundary}\n";
  $msg .= "Content-Disposition: attachment; filename=\"{$allegato_name}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";
  $msg .= "--{$mime_boundary}--\n";
}
else
{
  $msg = $mail_body;
}
if (mail($mail_subject, $mittente, $msg, $headers))
{
  echo "<p>Mail inviata con successo!</p>
  <p>Sarà ns cura ricontattarla. Grazie!</p>";
}else{
  echo "<p>Errore!</p>";
}
?>

Ovviamente quest'ultimo è quello che ho provato per ultimo. Diciamo che da "$allegato = $_FILES['allegato']['tmp_name'];" in poi sta il problema perchè senza, con la chiusura dovuta, il form parte e arriva.
Sono nelle Vs mani.
Grazie.
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.406
339
83
@iper00
Quando posti codice PHP devi usare il tag
php.png
non il tag
code.gif

Grazie
Questa volta te lo ho corretto io
 
  • Like
Reactions: iper00
Discussioni simili
Autore Titolo Forum Risposte Data
O [PHP] inviare dati da form e script ajax PHP 0
E [PHP] inviare 2 form consecutivamente PHP 4
S inviare the_title() in una mail tramite form html/php PHP 0
P Inviare mail da form php anche al mittente PHP 37
R Inviare file tramite un form a un indirizzo email tramite pagina php PHP 1
M file php per inviare dati form PHP 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
M Inviare variabili da menu a tendina a pagina php con post PHP 6
A [PHP] Inviare mail con piu immagini allegate PHP 6
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
H [PHP] Inviare dati PHP 3
S PHP: inviare via email contenuto di una funzione PHP 4
M Inviare mail con PHP tramite Mozilla PHP 3
max_400 Si possono inviare sms con php? PHP 5
F inviare una mail con php mailer PHP 3
G inviare comandi ssh con script php PHP 4
T inviare a php contenuto cella PHP 3
P Non riesco più ad inviare email con il php PHP 82
valient13 inviare option con php PHP 1
D_evil1991 inviare variabili da php al javascript PHP 0
G php effettuare una connessione ssh o telnet ed inviare dei comandi PHP 3
S problemi ad inviare mail in locale con php PHP 13
M Inviare email con allegati usando PHP PHP 2
U aiuto per script php inviare una mail PHP 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 0
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1

Discussioni simili