Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    caricare file sul server e invio mail di conferma

    buongiorno, da poco sto studiando il PHP. Sto modificando del codice affinchè, oltre a caricare un file sul server, mi invii una mail di avviso con il percorso dello stesso, affinchè lo possa visualizzare e/o scaricare. Il file viene caricato, la mail arriva, il percorso indicato è corretto, vorrei però inserirvi i dati del mittente, mail e nome. Nn riesco a valorizzare le variabili $nomemittente e $emailmittente, e pertanto questi dati nn vengono inviati. Vi posto il codice della pagina test2.php, grazie per ogni suggerimento vorrete darmi.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <HTML>
    <head>
    <title> PHP upload test page </title>
    </head>
    <body>
    <?php
    error_reporting(2047);
    if (isset($_POST["invio"])) {
    $percorso = "servizi/"; //nome della cartella dove archiviare i files
    if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {


    $reply = "Reply-to: $emailmittente\r\n";
    $mittente="From: $nomemittente<>\n";
    $download = "www.nomesito.com/servizi/".$_FILES['file1']['name'];
    $destinatario = "mioindirizzoemail";
    $oggetto = "Invio File";
    $messaggio = "Ciao $nomemittente Ti ha mandato una file tramite il sito www.nomesito.com
    lo puoi scaricare dal link $download ";
    mail($destinatario, $oggetto, $messaggio, $mittente.$reply);



    echo 'Nome file: '.$_FILES['file1']['name'].'
    ';
    echo 'MIME Type: '.$_FILES['file1']['type'].'
    ';
    echo 'Dimensione: '.$_FILES['file1']['size'].' byte
    ';
    echo '======================
    ';
    echo 'File caricato correttamente

    ';
    echo 'carica un altro file';
    } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    // HTML ?>
    <form enctype="multipart/form-data" method="post" action="" name="uploadform">


    Inserisci la tua ragione sociale o il tuo nome

    <input name="nomemittente" type="text" id="nomemittente" size="50" />
    </p>


    Inserisci la tua mail

    <input type="text" name="emailmittente" id="emailmittente" size="50" />
    </p>


    seleziona il file da caricare sul server:

    <input type="file" name="file1" size="50">


    <input type="submit" value="invia" name="invio">
    </p>
    </form>
    <?php
    }
    ?>
    </body>
    </html>

  2. #2
    Codice PHP:
    ...
    if (isset(
    $_POST["invio"])) {
        
    $emailmittente $_POST["emailmittente "];
        
    $mittente $_POST["mittente "];
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    ho solo dovuto togliere gli spazi da
    ..."emailmittente " e sostituire "mittente " con "nomemittente", funziona perfettamente.
    Ora nn mi resta che personalizzare la mail in stile HTML, ed inserire un limite alla dimensione del file da inviare. Grazie ancora.

  4. #4
    Originariamente inviato da angelorso
    ho solo dovuto togliere gli spazi da
    ..."emailmittente " e sostituire "mittente " con "nomemittente", funziona perfettamente.
    Ora nn mi resta che personalizzare la mail in stile HTML, ed inserire un limite alla dimensione del file da inviare. Grazie ancora.
    Oppss, non mi ero accorto degli spazi
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    ciao, ho provato a riscrivere il codice in maniera da separare il form con il modulo dal codice di validazione ed invio in PHP. Ho provato a modificare il codice così da poter avere un minimo di stile html nel messaggio di risposta. Ho riscritto tutto ottenendo quanto segue:

    Modulo.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <HTML>
    <head>
    <title> PHP upload test page </title>
    </head>
    <body>
    <form enctype="multipart/form-data" method="post" action="send.php" name="modulo">


    Nome e cognome:
    <input type="text" name="nome" size="30">
    </p>


    Indirizzo e-mail:
    <input type="text" name="email" size="30">
    </p>
    <input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="100000">
    File da caricare:
    <input type="file" name="file1" size="50">




    Testo del messaggio:
    <textarea rows="10" cols="30" name="messaggio">
    </textarea>
    </p>



    <input type="submit" value="Invia">
    <input type="reset" value="Cancella">
    </p>
    </form>

    </body>
    </html>

    Send.php

    <?php

    $nomemittente = $_POST["nome"];
    $emailmittente = $_POST["email"];
    $messaggiomittente = $_POST["messaggio"];
    $percorso = "servizi/"; //nome della cartella dove archiviare i files$percorso = "servizi/"; //nome della cartella dove archiviare i files

    function inviaMail(
    $destinatario,$oggetto,$testo,$da,$mittente)
    {
    $mail = array ("\'" => "'");
    $testo = @strtr($testo, $mail);
    $testo =
    '<html><body>'
    .@stripslashes($testo).'</body></html>
    '."\r\n\r\n";

    $head =
    'From: '.$da.' <'.$mittente.'>'."\r\n";

    $head .=
    'Content-Type: text/html; charset="ISO-8859-1"'."\r\n";

    $head .=
    'Content-Transfer-Encoding: quoted-printable'."\n\r\n";

    if(@mail ($destinatario, $oggetto, $testo, $head))
    {
    echo 'Messaggio inviato con successo';
    }else{
    echo 'Errore! Impossibile inviare il messaggio.';
    }
    }

    if ($_FILES['file1']['error'] == 4) { echo 'file non inserito
    ';} else {

    if ($_FILES['file1']['error'] == 2) { echo 'il file eccede la dimensione di 100Kb
    ';} else {

    if (is_uploaded_file($_FILES['file1']['tmp_name'])) {

    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
    str_replace(' ', '_', $_FILES['file1']['tmp_name']);
    //test di funzionamento
    $destinatario = 'info@mialmail.net';
    $oggetto = 'Test e-mail in HTML';
    // $testo = $messaggiomittente;
    $download = "www.miosito.com/servizi/".$_FILES['file1']['name'];


    $testo = 'Ciao '.$nomemittente .' ti ha inviato un filesssssssssssssss';


    $da = $nomemittente;
    $mittente = $emailmittente;
    $download = "www.miosito.com/servizi/".$_FILES['file1']['name']; @inviaMail(
    $destinatario, $oggetto, $testo, $da, $mittente);

    echo 'Nome file: '.$_FILES['file1']['name'].'
    ';
    echo 'MIME Type: '.$_FILES['file1']['type'].'
    ';
    echo 'Dimensione: '.$_FILES['file1']['size'].' byte
    ';
    echo '======================
    ';
    echo 'File caricato correttamente

    ';
    echo 'carica un altro file';

    } else {echo 'si &egrave; verificato un errore durante il caricamento
    ';}

    } else {echo 'si &egrave; verificato un errore durante il caricamento
    ';}

    }

    }

    ?>

    Il primo problema che ho evidenziato riguarda la stringa concatenata alla variabile, o a più di esse (nella revisione finale dovrò ottenere la seguente,

    'Ciao '.$nomemittente ' Ti ha mandato una file tramite il sito www.miosito.com
    lo puoi scaricare dal link ' ,$download;

    e pure concatenare un eventuale testo opzionale inserito nel form)

    $testo = 'Ciao '.$nomemittente .' ti ha inviato un filesssssssssssssss';

    L'ho scritta così xchè ho testato che il problema riguarda la lunghezza della stessa; se vado oltre come numero di caratteri nn manda nessuna mail, se la faccio più corta lo invia.

    Ho cercato su internet, ma nn ho trovato nulla.

    Il secondo problema riguarda il nome del file che mando sul server. se contiene degli spazi es. "disegno scala.jpg" nella mail di risposta mi appare "disegno", ottenendo così un percorso sbagliato.

    Ho provato con

    str_replace(' ', '_', $_FILES['file1']['tmp_name']);

    ma nn sono riuscito ad ottenere "disegno_scala".jpg

    Dove sbaglio? grazie per ogni vs suggerimento

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.