Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    non ho accesso diretto ma cercherò di verificare questo.
    Grazie di tutto

  2. #12
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ho fatto qualche piccola modifica perché con certi siti le email non arrivavano (se noti, nello script da te postato, tutto viene messo in headers, mentre il body dell'email resta inutilizzato).
    Codice PHP:
    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);    
        
    fclose($file);
        
    $encoded_attach chunk_split(base64_encode($contents));
        
        
    // mia aggiunta
        
    $MAX_DIM=100000;
        if(
    $file_size $MAX_DIM) {
            
    header("Location: error_page.php?attachsize=".$file_size);
        } 
    // 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 .= "Reply-To: ".$replyto."\r\n";
        
    $header .= "MIME-Version: 1.0\r\n";
        
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
        
        
    $body  "This is a multi-part message in MIME format.\r\n";
        
    $body .= "--".$uid."\r\n";
        
    $body .= "Content-type:text/html; charset=iso-8859-1\r\n";
        
    $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
        
    $body .= $message."\r\n\r\n";
        
    $body .= "--".$uid."\r\n";
        
    $body .= "Content-Type: application/octet-stream; name=\"".$file_name."\"\r\n"// use different content types here
        
    $body .= "Content-Transfer-Encoding: base64\r\n";
        
    $body .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n\r\n";
        
    $body .= $encoded_attach."\r\n\r\n";
        
    $body .= "--".$uid."--";
        if (
    mail($mailto$subject$body$header)) {        
            
    header("Location: mail_ok.php");
        } 
        else {
            
    header("Location: error_page.php");
        }

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

  3. #13
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    Se uso un'immagine poco pesante arriva a destinazione, quindi la funzione va bene
    Ho provato la tua modificata e mi ritorna 3 errori:
    Warning: fread(): supplied argument is not a valid stream riga 58
    Warning: fclose(): supplied argument is not a valid stream riga 59
    Warning: Cannot modify header information - headers already sent by (output started at riga 58) on line 94

    Il problema è un'altro: non mi esegue il controllo, ho provato anche a modificare la riga
    if($file_size > $dimenzione) {
    header("Location: mail_errore.php");
    }
    in
    if($file_size <> $dimenzione) { //DIVERSO
    header("Location: mail_errore.php");
    }
    Ma anche qui non mi va a mail_errore.php

    Proverò a chiedere aiuto ai gestori del server

  4. #14
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    I warning ce li hai perchè il file non arriva (scrivi ai gestori ). Gli @ che avevi prima in fase di sviluppo non vanno bene visto che sopprimendo i warning non ti accorgi di eventuali errori.

    Sull'uso di <> per il controllo anche qui ho qualche riserva... a che pro?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #15
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    il <> dovrebbe in ogni caso portare a mail_errore.php ed invece non esce quindi non fa prorpio il controllo (almeno credo non ce sto a capì più nulla)

  6. #16
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora ricapitolando:

    - le email con allegato piccolo riesci ad inviarle tranquillamente.
    - le email con allegato "grande" nel tuo codice vengono inviate, ma suppongo arrivino senza allegato o con allegato vuoto. Con il mio codice invece ti dovrebbero generare i warning del caso e la pagina va (ovviamente) in errore (se stampa i warning, c'è già stato un output di qualche tipo ed il redirect non può andare a buon fine)

    Puoi anche provare a caricare sul tuo server un file php con la sola istruzione:
    Codice PHP:
    <?php
      phpinfo
    ();
    ?>
    e cercare queste 2 "direttive" sotto "PHP Core"
    codice:
    max_execution_time	
    max_file_uploads
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #17
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    111
    hai ragione ho dovuto implementare nel codice la riga:
    set_time_limit(150);
    e impostare nel file .htaccess
    le due righe:
    php_value upload_max_filesize "10M"
    php_value max_execution_time "20"

    e ora funziona.
    Se trova l'allegato superiore a $dimenzione mi va a mail_errore.php
    altrimenti mi invia giusto con annesso allegato.

    Grazie per il tuo tempo

  8. #18
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ottimo. Saluti.
    <´¯)(¯`¤._)(¯`»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 © 2026 vBulletin Solutions, Inc. All rights reserved.