allegato via mail tramite form php

eleinad85

Nuovo Utente
2 Ago 2010
17
0
0
allora ho bisogno di aiuto. ho fatto un form in html con campo testo,chekbox ecc...queste risposte mi arrivano perfettamente per mail...ho dovuto inserire un campo file per far allegare gli utenti dei documenti e farmeli arrivare in allegato,mi potreste dire gentilmente un codice pulito da scrivere nello script in php? io ho cercato su internet ma nn riesco a farlo funzionare forse xkè mi va in conflitto con le mie variabili.

questo è il mio script.php

PHP:
<?php

$email = $_POST['mail'];


//
$stringa1 = "ATTENZIONE Tutti i campi sono obbligatori!";

//
$stringa2 = "l'indirizzo mail non è valido";

//
$stringa3 = "la checklist è stata inviata.grazie!";



// formato del messaggio
$msgformat = "La persona $nome $cognome ha compilato la seguente cechklist:\n\nnome checklist: $checklist\nstruttura: $struttura \nauditor: $auditor \nverifica del:$verifica \nmail: $email\nrisposte $d1_3 $d1_2 $d1_1 $d1_0 $d1_na \n$d2_3 $d2_2 $d2_1 $d2_0 $d2_na \n$d3_3 $d3_2 $d3_1 $d3_0 $d3_na \n$d4_3 $d4_2 $d4_1 $d4_0



//
$i=1;
while($i<=110)
{
if($_POST["note".$i]!='')
$msgformat.="Note".$i.":".$_POST["note".$i]."";
$i++;
}




// definisce i campi obbligatori (da personalizzare con quelli del proprio form)
if (( $nome == "" ) || ( $cognome == "" ) || ( $email == "" ))




// popup di errore sui campi obbligatori
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa1\");\n";
echo "java-script:history.go(-1);";
echo "</script>";
}

// controllo del formato della email
else if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{

// invia la email a me
mail($receiverMail, $subject, $msgformat, "From: $email");


// nelle prossime righe definisco se voglio un semplice popup che avvisa l'utente che il messaggio è stato inviato (OPZIONE1) e che lo fa ritornare automaticamente alla pagina dove ha compilato il form

// OPPURE

// se ridirezionarlo verso una pagina web specifica (OPZIONE2)


// OPZIONE1:
// popup di messaggio inviato e ritorno alla pagina precedente
// decommentare $stringa3
// commentare tutto se si usa OPZIONE2 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)

echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa3\");\n";
echo "java-script:history.go(-1);";
echo "</script>";
}

// OPZIONE2:
// popup di messaggio inviato e ridirezionamento ad una pagina web
// decommentare $redirect
// commentare tutto se si usa OPZIONE1 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)

/* echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";
}
*/

// popup di errore se fallisce il controllo formato email
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa2\");\n";
echo "java-script:history.go(-1);";
echo "</script>";
}
?>
 
Ultima modifica di un moderatore:

eleinad85

Nuovo Utente
2 Ago 2010
17
0
0
purtroppo non ho tempo ormai ,sono tantissime domande...mi serve solo un codice semplice da inserire per poter ricevere degli allegati,senza controllo ecc...basta ke mi arrivano i file,mi potresti fare un favore a dirmi il codice,mi serve per lavoro aiutami per favore 0:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda che quello che ha detto alex è sacrosanta verità, utilizzandi phpmailler risolvi il problema.

p.s.
vedo che usi ereg, guarda che è deprecato tra poco devi modificare tutti gli script in cui lo usi
 

eleinad85

Nuovo Utente
2 Ago 2010
17
0
0
lo so piu avanti lo proverò,ma adesso non posso rifare tutto lo script ho più di 200 domande,non posso inserire un codice nello script php?
 

eleinad85

Nuovo Utente
2 Ago 2010
17
0
0
su internet ho trovato quresto codice ma nn mi funge,forse va in conflitto con le mie variabili dato ke quel codice è stato creato solo per un esempio

PHP:
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

// 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"
  // Serve per dividere, appunto, le varie parti del messaggio.
  // Nel nostro caso separerà la parte testuale dall'allegato
  $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>";
}
 
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
ribadisco quello che aveva detto alex, usa phpmailler, non è difficile come sembra.
io sono anni che non uso più la funzione mail(), che tra l'altro da problemi con alcuni server di posta
 

eleinad85

Nuovo Utente
2 Ago 2010
17
0
0
lo so dovrei istallarlo sul sito,cè la spiegazione sul link ke mi ha dato...xò devo riscrivere tutte le variabili sono piu di 200 domande e non ho tempo,per adesso mi serviva un codice da inserire nello script ke ho poi con calma imparerò phpmail
 
Discussioni simili
Autore Titolo Forum Risposte Data
D SALVARE "MASCHERA" + "ALLEGATO PDF" IN UN UNICO PDF MS Access 0
I [PHP] inviare form con allegato tramite una mail PHP 1
G [PHP] Creare mail con allegato nascosto e bottone di richiamo PHP 0
otto9due Creare immagine dinamica timer (come esempio allegato) jQuery 4
V PHPmailer allegato PHP 0
P Nome del file allegato alla email inviata con CDOSYS Classic ASP 0
A Creare da form un PDF da inviare come allegato. PHP 1
D Email con allegato PHP 2
marino51 non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra Supporto Mr.Webmaster 0
1 Errore di istallazione programma vb2010 con access in allegato MS Access 8
M Mail in html con allegato non coesistono? PHP 6
B Problema form mail per invio doppio allegato PHP 1
A Problema allegato email PHP 2
I scrivere solo il percorso (e nome file) di un file allegato (type="file") PHP 1
L Sviluppare form mail con allegato PHP 6
L come passare il campo allegato dal file html al fiel php per spedirlo con un form PHP 12
V problemi con l'invio di allegato in un form PHP 17
R invio email php con allegato PHP 1
A allegato form PHP 14
Task Mc Allegato in form PHP 3
M email con allegato PHP 3
M form mail con allegato e immagine Classic ASP 4
E Form invio e-mail con allegato PHP 51
E Form invio e-mail con allegato PHP 0
N PhpMailer e salvataggio allegato sul server PHP 11
N Form invio Mail con Allegato PHP 2
IImanuII Allegato controllo dimensioni PHP 17
L [PHP e FTP upload] controllo file allegato PHP 6
S Memorizzare nome file allegato da form registrazione PHP 1
M Form non parte l'allegato.... PHP 5
A Aiuto per form email con allegato PHP 4
metalgemini PHPmailer non arriva allegato PHP 10
piccino PHPMailer: inserire allegato PHP 5
D For invio mail-allegato con smtp PHP 9
M invio email con più di un allegato PHP 1
M [Cerco retribuito] Form info varie con allegato FLASH + PHP Offerte e Richieste di Lavoro e/o Collaborazione 0
A allegato in invio e-mails PHP 2
E aiuto form allegato.con funzione mail PHP 8
A Mail con allegato sul server PHP 3
I problema a mandare allegato pdf con phpmailerl PHP 2
N errore visualizzazione allegato jpg PHP 6
C Inviare mail con allegato PDF non uppato PHP 2
D Problema con allegato tramite form mail PHP 2
rollobix Form Mail con file allegato Presenta il tuo Sito 8
N problema:mail con allegato a piu utenti da db PHP 17
L [CSS] Div e menu sovrapposti, attributi 'absolute', 'relative' (schema in allegato) HTML e CSS 0
K newsletter con allegato e html Classic ASP 5
R PhpMailer inserire Allegato PHP 1
S invio allegato con webmail PHP 0
L PhpMailer - Scrivere su file e spedire come allegato PHP 1

Discussioni simili