Help per form php

Poliforme

Nuovo Utente
6 Nov 2009
14
0
0
Salve a tutti.

Ho il seguente problema.Ho utilizzato il codice php trovato quì in una guida.Il codice è un semplice form scritto in php che consente anche di inviare allegati.
Quì sotto inserisco il codice php:
---------------------------------------
<?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))
{
header( "location: about.html" );
}else{
header( "location: " );
}
?>
-------------------------------------------------------------
Vorrei sapere come devo modificare il codice per aggiungere altri moduli al form e come posso far arrivare una mail di conferma all'utente che mi ha contattato.

Grazie a tutti.

Poli Paride
 
Grazie per la risposta

Grazie Alessandro1997 per la tua risposta.Il problema è che io sono molto terra terra con il php e quindi non ho capito.Esattamente che devo scrivere nella riga perchè l'utente che mi invia la mail,ne riceva a sua volta sulla propria,un messaggio di conferma?

Inoltre,il discorso che forse non hai compreso è semplicemente che il vorrei aggiungere almeno un altro campo al form che già ho(anche solo un banale text)per ricevere altri dati dagli utenti.Non so perciò che righe di codice devo inserire nel file .php e dove esattamente inserirle.

Comunque grazie per l'aiuto.
 
ciao
prima una piccola cosa sullo script che hai inviato:
vuoi che chi scrive mandi a te l'email o la mandi a qualcun altro?
perchè (se in $destinatario = $_POST['destinatario']; ) chi scrive mette pinco@pallo.it l'email arriva a pinco pallo, non a te
 
Diciamo che...

Salve Borgo Italia;
in realtà volevo che la mail fosse inviata sia a me che all'utente che me spedisce.Cmq,ho risolto almeno per ora questi problemini tramite un amico che mi ha aiutato :).Purtroppo non ero in grado di customizzare il codice.Cmq,sicuramente avrò bisogno di apportare altre modifiche al form nel prossimo futuro

Grazie per ora.
 

Discussioni simili