Aiuto per form email con allegato

aletta

Nuovo Utente
27 Feb 2012
2
0
0
Ciao a tutti ho un problema con la compilazione di un form che mi permette di far inviare dei curriculum dal visitatore del sito esiste qualcosa di gia fatto o qualcuno cosi gentile che mi spiega passo per passo come fare perpiacere? :mavieni:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
benvenuto nel forum.
per inviare in allegati guarda l'uso della classe phpmailler negli articoli mrwm.
qualcosa di pronto dipende cosa vuoi fare.
comunque butta giù qualcosa e postalo (inizia a postare il form che vorresti fare), qualche buon'anima che ti aiuti la trovi:)
 
Ultima modifica di un moderatore:

aletta

Nuovo Utente
27 Feb 2012
2
0
0
ciao
benvenuto nel forum.
per inviare in allegati guarda l'uso della classe phpmailler negli articoli mrwm.
qualcosa di pronto dipende cosa vuoi fare.
comunque butta giù qualcosa e postalo (inizia a postare il form che vorresti fare), qualche buon'anima che ti aiuti la trovi:)
Ciao grazie mille si mo provo a vedere li :)
Mi servirebbe un form con campo magari nome email un testo e la possibilità di allegarmi ed inviarmi il loro curriculum :( purtroppo ho provato con il codice in mio possesso ma nulla dove sbaglio?
pagina inviamail.php

HTML:
<body>
<div id="response" style="display:none;border:1px solid #ccc:padding:10px;background:#f4f4f4;"></div>
<form action="mailattachment.php" method="POST" enctype="multipart/form-data">
<table border="0">
<tr>
  <td>Tua Mail:</td>
  <td><input type="text" name="mail" value="" id="mail" /></td>
</tr>
<tr>
  <td>Oggetto:</td>
  <td><input type="text" name="oggetto" value="" id="oggetto" /></td>
</tr>
<tr>
  <td>Messaggio:</td>
  <td><textarea cols="30" rows="6" name="testomessaggio" id="testomessaggio"></textarea></td>
  </tr>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="attachment" /></td>
</tr>
<tr>
  <td colspan="2"><input type="submit" value="Invia mail" id="sendmail" name="sendmail" /></td>
</tr>
</table>
</form>
</body>

pagina mailattachment.php

PHP:
<?php
// Recuperiamo i valori dal form e aggiungiamo la nostra email dove ricevere il file allegato con la mail
$to = "QUA METTO EMAIL";      
$mail = $_POST['mail'];
$oggetto = $_POST['oggetto'];
$testomessaggio = $_POST['testomessaggio'];

// Creiamo le variabili per il file attachment
$attachment = $_FILES['attachment']['tmp_name'];
$attachment_type = $_FILES['attachment']['type'];
$attachment_name = $_FILES['attachment']['name'];

$headers = "From: " . $to;

// Verifichiamo  se è stato eseguito l'upload del file
if (is_uploaded_file($attachment))
{
  // usiamo la funzione fopen e fread per aprire e leggere il file e poi chiudiamo con fclose
  $file = fopen($attachment,'rb');
  $data = fread($file, filesize($attachment));
  fclose($file);

  // Codifichiamo il file adattandolo a base64 usando la funzione chunk_split di php
  $data = chunk_split(base64_encode($data));

   /* Creiamo una variabile per un divisore che deve divir
  dere la parte testuale del messaggio dal file stesso altrimenti riceverete una serie illeggibili di caratteri  
	 */
  $func_rand = md5(time());
  $mime_boundary = "==Multipart_divisor_x{$func_rand}x";
  
  // Aggiungo le intestazioni necessarie per l'attachment
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " divisor=\"{$mime_boundary}\"";

  // Definisco il tipo di messaggio (MIME/multi-part)
  $body .= "This is a multi-part message in MIME format.\n\n";

 // Mettiamo il separatore 
  $body .= "--{$mime_boundary}\n";
  
  // Questa è la parte "testuale" del messaggio
  $body .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $body .= "Content-Transfer-Encoding: 7bit\n\n";
  $body .= "From :" . $mail . "\n\n";
  $body .= $messaggio . "\n\n";
  //  Ancora il separatore alla fine del contenuto testuale della mail
  $body .= "--{$mime_boundary}\n";

  // Adesso aggiungiamo l'allegato alla mail
  $body .= "Content-Disposition: attachment;\n";
  $body .= " filename=\"{$attachment_name}\"\n";
  $body .= "Content-Transfer-Encoding: base64\n\n";
  $body .= $data . "\n\n";
  
    // chiudo con il separatore
  $body .= "--{$mime_boundary}--\n";
}
else
{
  $body = $testomessaggio;
}

// Invio la mail
if (mail($to, $oggetto, $body, $headers))
{
  echo "<em>Mail e allegato inviati correttamenti</em>";
}else{
  echo "<em>Ci sono problemi, verifica il codice php</em>";
}
?>

Dove sbaglio? perpiacere
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
alcune cose:
il form va abbastanza bene, mentre lo script php e meglio rimetterci le mani.
1) secondo me, ti convine fare tutto in una stessa pagina (form+invio)
2) inviando così brutalmente sia i valori (testi e allegato) corri i grosso rischio che ti inviino delle porcherie (es un allegato delete_tutto_hard_disck.exe)
o semplicemente un indirizzo email tipo pinco+pallo.it ecc..
quindi bisogna mettere dei controlli a quello che ti fai inviare
3) la funzione nativa php mail() non sempre funzia come dovrebbe ti conviene passare alla classe PHPMailler
vai all'articolo
https://www.mrw.it/php/articoli/inviare-email-classe-phpmailer_631.html
e scaricati lo zip, lo metti nella cartella dove hai il form e lo apri
dopo che l'hai aperto dovresti trovare le cartelle phpmasiller con i file class.phpmailler.php class.smtp.php e un'altra sottocartella language
li non toccare niente.
4) ti conviene inoltre mettere un captcha o qualcosa di simile in modo da non essere invaso da spam
fatto questo con un po' di pazienza assieme cominciamo a buttare giù qualcosa di decente.
non ti preuccupare è più semplice di quello che sembra (comunque siamo qui)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco come dovresti impostare la pagina che puoi chiamare (es) contatto.php, l'importante che sia .php
leggi i commenti (che poi se ti danno fastidio puoi togliere)

PHP:
<?php
//qui metteremo i controlli e l'invio (se i controlli sono OK)
//.......

?>
<!-- qui tutto l'html che ti serve -->
<div id="response" style="display:none;border:1px solid #ccc:padding:10px;background:#f4f4f4;"></div>
<!-- mettendo l'action così puoi mettere tutto nella stessa pagina e non preoccuparti di che nome gli dai -->
<form action="<?php echo {$_SERVER['REQUEST_URI']};?>" method="POST" enctype="multipart/form-data">
<table border="0">
<tr>
  <td>* Tua Mail:</td>
  <td><input type="text" name="mail" value="" id="mail" /></td>
</tr>
<tr>
  <td>* Oggetto:</td>
  <td><input type="text" name="oggetto" value="" id="oggetto" /></td>
</tr>
<tr>
  <td>* Messaggio:</td>
  <td><textarea cols="30" rows="6" name="testomessaggio" id="testomessaggio"></textarea></td>
  </tr>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="attachment" /></td>
</tr>
<tr>
  <td colspan="2"><input type="submit" value="Invia mail" id="sendmail" name="sendmail" /></td>
</tr>
<tr>
  <td colspan="2">i campi contrassegnati con * sono obbligatori</td>
</tr>
</table>
</form>
<!-- qui tutto l'html che ti serve -->
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
A Aiuto per Select form dinamica PHP 0
B aiuto per Form di eliminazione record PHP 21
L Aiuto per ultimazione form invio email PHP 3
C Aiuto per form PHP 5
A Form per alimentare un DB con PHP: aiuto!! PHP 17
K aiuto per mail inviata da form.. PHP 3
G Aiuto per creare un form di invio file Classic ASP 3
C aiuto per validare form Javascript 3
E Aiuto per query PHP 8
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
A Aiuto per pagina php PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
L Aiuto per programma web php/mySQL PHP 2
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
wildcity9 aiuto per sbloccare account instagram bannati Social Media Marketing 0
A Aiuto per configurare il banner di Iubenda su un sito in html HTML e CSS 0
Z [HTML] aiuto per visualizzazione su tablet Offerte e Richieste di Lavoro e/o Collaborazione 6
W [PHP] Un aiuto per il mio primo "Multithread" PHP 0
G Vuoi fare successo? Abbiamo bisogno di aiuto per un app! Offerte e Richieste di Lavoro e/o Collaborazione 1
K [javascript] Aiuto per programma subnetting Javascript 0
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
L [PHP] aiuto per installazione mrbs PHP 0
1 Aiuto per nuovo sito SEO e Posizionamento 4
K Server per sito di annunci: aiuto nella scelta Hosting 4
P [Javascript] Aiuto per recupero variabili da script Javascript 10
P [PHP] Aiuto per gestione file CSV PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
A aiuto per un codice... PHP 1
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
StelladelSud Cerco aiuto per una demo Offerte e Richieste di Lavoro e/o Collaborazione 3
G Piccolo aiuto per php mail PHP 2
G aiuto per semplice menu onclick HTML e CSS 6
A AIUTO per impostazione doppia cifra in tabella HTML e CSS 6
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 3
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 0
A Aiuto per Flash player Flash 0
J Aiuto per localstorage con jquery/js/json Javascript 4
M Cerco aiuto per una modifica di un codice Javascript 2
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
G Aiuto! Studente cerca aiuto per un codice PHP PHP 1
S Aiuto per 2 codifiche java Java 4
G Aiuto per creare chat stile Facebook Javascript 7

Discussioni simili