Visualizzazione risultati 1 fino 8 di 8

Discussione: BUG php4.3

  1. #1
    myHACKERZONE non è connesso Neofita
    Data registrazione
    11-05-2004
    Messaggi
    6

    Exclamation BUG php4.3

    ho cercato di inserire un script php che mi permettesse di allegare files alla e-mail inviata tramite form di pagina web senza riuscirci.
    ho scoperto che il problema è dovuto al server PHP4.3 che fa perdere 1024 byte ogni chunk inviato.
    come si posso risolvere il problema?
    Ultima modifica di myHACKERZONE : 23-02-2005 alle ore 16.39.32

  2. #2
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Dove hai trovato questa informazione?
    Gianluca

  3. #3
    myHACKERZONE non è connesso Neofita
    Data registrazione
    11-05-2004
    Messaggi
    6

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    quel "bug"

    è stato chiusto il 11 agosto 2003...

    http://bugs.php.net/bug.php?id=25037

    (e comunque dalla spiegazione sembra che vada in loop... non che tronchi il primo kilobyte) :/

    sicuramente sulla versione attuale che c'è su altervista il bug è stato risolto :P

    puoi postare il codice che usi e nel quale riscontri il problema?
    Ultima modifica di Evcz : 23-02-2005 alle ore 20.36.48
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    myHACKERZONE non è connesso Neofita
    Data registrazione
    11-05-2004
    Messaggi
    6

    Predefinito

    Questo e' il form in html:

    --------------------------------------
    <form action="sendmail.php" enctype="multipart/form-data" method="POST">
    <table cellpadding="0" cellspacing="0">
    <tr>
    <td>Destinatario: </td>
    <td><input type="text" name="Destinatario" size="40"></td>
    </tr>
    <tr>
    <td>Soggetto:</td>
    <td><input type="text" name="Soggetto" size="40"></td>
    </tr>
    <tr>
    <td>Allegato:</td><td><input type="file" name="allegato" size="40"></td>
    </tr>
    <tr>
    <td valign="top">Contenuto:</td>
    <td><textarea name="Contenuto" rows="15" cols="50"></textarea></td>
    </tr>
    <tr>
    <td height="30" valign="bottom" colspan="2" align="center"><input type="submit" value="Invia la mail">
    </tr>
    </table>
    </form>
    -----------------------------------------------------

    e questo e' lo script che invia la mail:

    -----------------------------------------------------
    <?php

    // RENDIAMO LO SCRIPT COMPATIBILE CON LE VERSIONI DI PHP < 4.1.0
    if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
    if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;

    // RIPULIAMO I VARI CAMPI DEL MODULO
    $Destinatario = trim($_POST["Destinatario"]);
    $Soggetto = trim(stripslashes($_POST["Soggetto"]));
    $Contenuto = trim(stripslashes($_POST["Contenuto"]));

    // ASSEGNIAMO A VARIABILI PIU' LEGGIBILI, LE PROPRIETA' DELL'ALLEGATO
    $attach = $_FILES["allegato"]["tmp_name"];
    $file_name = $_FILES["allegato"]["name"];
    $file_type = $_FILES["allegato"]["type"];
    $file_size = $_FILES["allegato"]["size"];

    // DELIMITATORE
    $boundary = md5(uniqid(microtime()));

    // APRIAMO L'ALLEGATO PER LEGGERLO E CODIFICARLO
    $file = @fopen($attach, "r");
    $contents = @fread($file, $file_size);
    $encoded_attach = chunk_split(base64_encode($contents));
    @fclose($file);

    // INTESTAZIONI DELLA MAIL
    $mail_headers .= "MIME-version: 1.0\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
    $mail_headers .= "X-attachments: $file_name\n";

    // COSTRUIAMO IL CORPO DELLA MAIL
    $mail_body = "--$boundary\n";
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
    $mail_body .= "$Contenuto\n\n";
    $mail_body .= "--$boundary\n";
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";
    $mail_body .= "Content-Transfer-Encoding: base64\n";
    $mail_body .= "$encoded_attach\n";
    $mail_body .= "--$boundary--\n";

    // INVIO DELLA MAIL
    if(@mail($Destinatario, $Soggetto, $mail_body, $mail_headers)) { // SE L'INVIO E' ANDATO A BUON FINE...

    echo "La mail è stata inoltrata con successo.";

    } else {// ALTRIMENTI...

    echo "Si sono verificati dei problemi nell'invio della mail.";

    }

    ?>
    ------------------------------------------------------

  6. #6
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    provato a mettere un move_uploaded_file una volta caricato aprirlo dal server, "pesarlo" (filesize()) e una volta inviata la mail cancellarlo?
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  7. #7
    myHACKERZONE non è connesso Neofita
    Data registrazione
    11-05-2004
    Messaggi
    6

    Predefinito

    no, ma io volevo proprio evitare questo... perche lo spazio e' poco... cmq e' strano che non vadi... io ho provato altri codici e classi per l'invio di mail con allegato ma nessuno di questi me lo fa inviare...

  8. #8
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Teoricamente se si tratta di un problema legato a quel bug dovrebbe già essere stato risolto da più di un anno essendo ormai alla versione 4.3.10, lascio questo thread in sospeso per fare eventuali e ulteriori indagini.
    Gianluca

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •