qusta è la index cioe dove invio le mail:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
<?php
if (isset($_SESSION['file']))
{
$a = $_SESSION['file'];
print ('
[url="http://beck.altervista.org/upload_img/'.$a.'"]'.$a.'[/url]</p>');
print ('<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="image" type="file" size="40" />
<input name="upload" type="submit" value="Carica immagine" />
</form>');
}
else
{
print ('<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="image" type="file" size="40" />
<input name="upload" type="submit" value="Carica immagine" />
</form>');
}
?>
</head>
<body>
<form action="formmail2.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="destinatario" value="davidebeccaro@gmail.com">
<table border="0">
<tr>
<td>Tua Mail:</td>
<td><input type="text" name="mittente" value="" /></td>
</tr>
<tr>
<td>Oggetto:</td>
<td><input type="text" name="oggetto" value="" /></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggiob"></textarea>
</textarea></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggioc"></textarea>
</textarea></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggiod"></textarea>
</textarea></td>
</tr>
<tr>
<td>Allega file:</td>
<td><input type="file" name="allegatoa" /></td>
</tr>
<tr>
<td>Allega file:</td>
<td><input type="file" name="allegatob" /></td>
</tr>
<tr>
<tr>
<td colspan="2">
<table>
<tr>
<td><input type="submit" value="Invia" /></td>
<td><input type="reset" value="cancella"></td>
</tr>
</table></tr>
</table>
</form>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="image" type="file" size="40" />
<input name="upload" type="submit" value="Carica immagine" />
</form>
</body>
</html>
Questa è la pagina di invio delle mail:
Codice PHP:
<?php
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggioa = $_POST['messaggiob'];
$messaggiob = $_POST['messaggioc'];
$messaggioc = $_POST['messaggiod'];
// Valorizzo le variabili relative all'allegato
$allegatoa = $_FILES['allegatoa']['tmp_name'];
$allegatoa_type = $_FILES['allegatoa']['type'];
$allegatoa_name = $_FILES['allegatoa']['name'];
$allegatob = $_FILES['allegatob']['tmp_name'];
$allegatob_type = $_FILES['allegatob']['type'];
$allegatob_name = $_FILES['allegatob']['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($allegatoa))
{
// Apro e leggo il file allegato
$filea = fopen($allegatoa,'rb');
$dataa = fread($filea, filesize($allegatoa));
fclose($filea);
// Adatto il file al formato MIME base64 usando base64_encode
$dataa = chunk_split(base64_encode($dataa));
// 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 .= "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" . "\n\n";
// Metto il separatore
$msg .= "--{$mime_boundary}\n";
// Aggiungo l'allegato al messaggio
$msg .= "Content-Disposition: attachment;\n";
$msg .= " filename=\"{$allegatoa_name}\"\n";
$msg .= "Content-Transfer-Encoding: base64\n\n";
$msg .= $dataa . "\n\n";
// chiudo con il separatore
$msg .= "--{$mime_boundary}--\n";
}
else
{
$msg = "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" ;
}
// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegatob))
{
// Apro e leggo il file allegato
$fileb = fopen($allegatob,'rb');
$datab = fread($fileb, filesize($allegatob));
fclose($filea);
// Adatto il file al formato MIME base64 usando base64_encode
$datab = chunk_split(base64_encode($datab));
// Genero il "separatore"
// Serve per dividere, appunto, le varie parti del messaggio.
// Nel nostro caso separerà la parte testuale dall'allegato
$semi_randb = md5(time());
$mime_boundaryb = "==Multipart_Boundary_x{$semi_randb}x";
// Aggiungo le intestazioni necessarie per l'allegato
$headersb .= "\nMIME-Version: 1.0\n";
$headersb .= "Content-Type: multipart/mixed;\n";
$headersb .= " boundary=\"{$mime_boundaryb}\"";
// Definisco il tipo di messaggio (MIME/multi-part)
$msgb .= "This is a multi-part message in MIME format.\n\n";
// Metto il separatore
$msgb .= "--{$mime_boundaryb}\n";
// Questa è la parte "testuale" del messaggio
//$msgb .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
//$msgb .= "Content-Transfer-Encoding: 7bit\n\n";
//$msgb .= "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" . "\n\n";
// Metto il separatore
$msgb .= "--{$mime_boundary}\n";
// Aggiungo l'allegato al messaggio
$msgb .= "Content-Disposition: attachment;\n";
$msgb .= " filename=\"{$allegatob_name}\"\n";
$msgb .= "Content-Transfer-Encoding: base64\n\n";
$msgb .= $datab . "\n\n";
// chiudo con il separatore
$msgb .= "--{$mime_boundary}--\n";
}
else
{
$msgb = "sbagliato" ;
}
// Invio la mail
if (mail($destinatario, $oggetto, $msg, $msgb, $headers))
{
echo "
Mail inviata con successo!</p>";
}else{
echo "
Errore!</p>";
}
($_SESSION['file']);
?>
e questa invece è la pagina che fa l'upload alla cartella upload_img:
Codice PHP:
<?php
do {
if (is_uploaded_file($_FILES['image']['tmp_name'])) {
// Controllo che il file non superi i 60 KB
if ($_FILES['image']['size'] > 60000) {
$msg = "
Il file non deve superare i 18 KB!!</p>";
break;
}
// Ottengo le informazioni sull'immagine
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
// Controllo che le dimensioni (in pixel) non superino 160x180
//if (($width > 160) || ($height > 180)) {
// $msg = "
Dimensioni non corrette!!</p>";
// break;
// }
// Controllo che il file sia in uno dei formati GIF, JPG o PNG
if (($type!=1) && ($type!=2) && ($type!=3)) {
$msg = "
Formato non corretto!!</p>";
break;
}
// Verifico che sul sul server non esista già un file con lo stesso nome
// In alternativa potrei dare io un nome che sia funzione della data e dell'ora
if (file_exists('upload_img/'.$_FILES['image']['name'])) {
$msg = "
File già esistente sul server. Rinominarlo e riprovare.</p>";
break;
}
// Sposto il file nella cartella da me desiderata
if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
$msg = "
Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;
$_SESSION['file'] = $_FILES['image']['name'];
header('Location:index.php');
?>
grazie