[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.392
338
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
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 0
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
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23

Discussioni simili