Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111

    dimenzione massima email da form

    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");
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    1: usa i tag PHP o CODE per postare codice
    2: scegli uno zero a caso ed eliminalo (quelli sono 10M).

    PS:
    3: non ho guardato minimamente il resto del codice, se dici che l'email la manda almeno quella parte lì è giusta.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    non ho capito

    anche togliendo uno zero non mi esegue il controllo

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Codice PHP:
    // $dimenzione = 10024000; pace all'anima della grammatica, sono 10M circa. C'è uno zero di troppo.

    $dimensione 1024000// sono circa 1M, e l'italiano sopravvive qualche altra riga 
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    anche togliendo uno zero non mi esegue il controllo

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Modifica questa
    Codice PHP:
    if($_FILES['allegato']['size'] > $dimenzione) {
      
    header("Location: mail_errore.php");

    così:
    Codice PHP:
    if($file_size $dimenzione) {
      
    header("Location: mail_errore.php");

    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    nulla da fare!, del resto è la stessa cosa.
    non capisco dove cacchio sbaglio.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non ne ho idea: io ho fatto copia-incolla del tuo codice, creato un form per fare un test e va: l'email non parte se l'allegato è fuori dimensioni.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    ho provato a vedere cosa mi ritorna la variabile $file_size è mi da: 0 (zero)
    può essere un problema del server web? cerco di allegare un file da 3mb circa.

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    potrebbe essere che in php.ini hai settato una dimensione massima inferiore (tipo 2MB). Se hai accesso diretto a tale file controlla che hai impostato per:

    upload_max_filesize
    post_max_size

    tipo se trovi:
    upload_max_filesize = 10M
    post_max_size = 10M

    vorrebbe dire massimo 10MB
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.