[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=".+@.+..+[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.449
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
csi Inviare file jpg in locale alla stampante con php 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 3
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5

Discussioni simili