Salve a tutti ho un form dove carico un'immagine dal pc e la allego ad una mail con una funzione.
La funzione funziona correttamente, solo che vorrei impostare un limite alla dimenzione del file allegato (massimo 1mb) ho provato così, ma non funziona il controllo cioè l'email con allegato arriva ugualmente. dove sbaglio?
Ecco la finzione con la mia ggiunta:
function mail_attachment($mailto, $from_mail, $from_name, $subject, $message) {
$attach = $_FILES["allegato"]["tmp_name"];
$file_name = $_FILES["allegato"]["name"];
$file_type = $_FILES["allegato"]["type"];
$file_size = $_FILES["allegato"]["size"];
$file = @fopen($attach, "r");
$contents = @fread($file, $file_size);
$encoded_attach = chunk_split(base64_encode($contents));
@fclose($file);
// mia aggiunta
$dimenzione=10024000;
if($_FILES['allegato']['size'] > $dimenzione){
header("Location: mail_errore.php");
} // in teoria se l'immagine allegato è superiore a 10024000 (byte) mi deve andare in pagina errore.(uscire) ma non va e prosegue lo script allegando ugualmente il file
$uid = md5(uniqid(time()));
$name = basename($attach);
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$file_name."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n\r\n";
$header .= $encoded_attach."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($mailto, $subject, "", $header)) {
header("Location: mail_ok.php");
} else {
header("Location: mail_errore.php");
}
}