Salve a tutti, mi scuso se scrivo nella sezione sbaglita, ma è il mio primo messaggio che scrivo nel forum, ho trovato in giro per internet un form mail che invia allegati, molto semplice da fare, e il form si divide in due pagine, quella php che fa tutto il lavoro e quella html che fa riferimento al form in questione
eccovi entrambi i codici
formmail.php
Codice:
<?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>";
}
?>
file.htm
Codice:
<form action="formmail.php" method="POST" enctype="multipart/form-data" style="text-align: center">
<font face="Comic Sans MS">
<input type="hidden" name="destinatario" value="magik_dr@hotmail.it">
</font>
<table border="0" id="table6">
<tr>
<td><font face="Comic Sans MS">Tua Mail:</font></td>
<td><font face="Comic Sans MS">
<input type="text" name="mittente" value="" size="31" /></font></td>
</tr>
<tr>
<td><font face="Comic Sans MS">Oggetto:</font></td>
<td><font face="Comic Sans MS">
<input type="text" name="oggetto" value="" size="31" /></font></td>
</tr>
<tr>
<td><font face="Comic Sans MS">Messaggio:</font></td>
<td><font face="Comic Sans MS"><textarea cols="26" rows="4" name="messaggio"></textarea></font></td>
</tr>
<tr>
<td><font face="Comic Sans MS">Allega file:</font></td>
<td><font face="Comic Sans MS"><input type="file" name="allegato" /></font></td>
</tr>
<tr>
<td colspan="2">
<p align="center"><font face="Comic Sans MS"><input type="submit" value="Invia" /></font></td>
</tr>
</table>
</form>
in questa pagina http://magiksite.altervista.org/contattami.htm c'è il form in questione, solo che quando mi invia la mail, vorrei che dopo ritornasse al form, come fare? perchè se provate rimane in una pagina bianca che dice che la mail la inviata con successo, poi nel codice nn lo trovato, ma c'è un modo per mettere un limite alle dimensioni dell'allegato?
grazie mille