Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121

    aiuto problema form con invio allegato

    Ciao confido in un aiutino da esperto grazie
    Quando invio i dati del form completi con allegato nessun problema, la mail arriva completa 'Mail inviata con successo...'. mentre se non allego file allora dopo l'invio dati, mi compare sia la scritta 'Errore' sia ' Mail inviata con successo....' e la mail arriva ma vuota, senza neanche i dati inseriti....io vorrei poter far inviare i dati anche senza allegato....sapreste aiutarmi? grazie

    INVIO.PHP
    <?php

    $destinatario = $_POST['destinatario'];
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $oggetto=$_POST['oggetto'];
    $mail=$_POST['mail'];
    $citta=$_POST['citta'];
    $telefono=$_POST['telefono'];
    $message=$_POST['message'];

    $messaggio='

    Nome : '.$nome.'

    Cognome : '.$cognome.'

    Oggetto : '.$oggetto.'

    Mail : '.$mail.'

    Città : '.$citta.'

    Telefono : '.$telefono.'

    Messaggio : '.$message.'

    ';

    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];

    $headers = "From: " . $mail;
    $msg = "";

    if (is_uploaded_file($allegato))
    {
    $file = fopen($allegato,'rb');
    $data = fread($file, filesize($allegato));
    fclose($file);
    $data = chunk_split(base64_encode($data));
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    $headers .= "\nMIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"{$mime_boundary}\"";
    $msg .= "This is a multi-part message in MIME format.\n\n";
    $msg .= "--{$mime_boundary}\n";


    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $messaggio . "\n\n";
    $msg .= "--{$mime_boundary}\n";

    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data . "\n\n";

    $msg .= "--{$mime_boundary}--\n";
    }
    else
    {
    echo "

    Errore!</p>";
    }


    if (mail($destinatario, $oggetto, $msg, $headers))
    {
    header("Refresh: 5; URL=index.html");
    echo "
    <p align='center'>Mail inviata con successo !
    Sarete contattati al più presto !

    Reindirizzamento....</p>";
    }else{
    echo "

    Errore!</p>";
    }

    FORM.HTML

    <form name="modulo" action="invio.php" method="post" enctype="multipart/form-data" onsubmit="return checkForm();">
    <input type="hidden" name="destinatario" value="XXXXXXX@gmail.com">
    <table align="center" width="600" cellpadding="2" cellspacing="2">
    <tr>
    <td>Nome </td>
    <td><input type="text" name="nome" id="nome" size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Cognome </td>
    <td><input type="text" name="cognome" id="cognome" size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Oggetto</td>
    <td><input name="oggetto" type="text" id="oggetto" value="Richiesta info " size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Mail </td>
    <td><input type="text" name="mail" id="mail" size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Città </td>
    <td><input type="text" name="citta" id="citta" size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Telefono </td>
    <td><input type="text" name="telefono" id="telefono" size="30" maxlength="100" /></td>
    </tr>
    <tr>
    <td>Messaggio </td>
    <td><textarea name="message" cols="30" id="message"></textarea></td>
    </tr>
    <tr>
    <td>Allegato
    </td>
    <td><input type="file" name="allegato" id="allegato" /></td>
    </tr>
    </table>
    <div align="center">
    <input type="submit" value="Invia dati" />
    </div>
    </form>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Quando posti del codice nei thread per favore scrivilo all'interno dei tag [ P H P ]..qui il codice.. [ / P H P ] (senza spazi), altrimenti non si capisce nulla.

    Un'altra cosa: stai utilizzando gli apici singoli per definire stringhe che andranno a contenere variabili dichiarate direttamente nella stringa...sostituiscile con gli apici doppi (virgolette).

    E poi..

    ..il tuo script è impostato male. Prova così:

    Codice PHP:
    <?php

    $destinatario 
    $_POST['destinatario'];
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $oggetto=$_POST['oggetto'];
    $mail=$_POST['mail'];
    $citta=$_POST['citta'];
    $telefono=$_POST['telefono'];
    $message=$_POST['message'];

    $messaggio="
     Nome : 
    $nome
     Cognome : 
    $cognome
     Oggetto : 
    $oggetto
     Mail : 
    $mail
     Città : 
    $citta
     Telefono : 
    $telefono
     Messaggio : 
    $message
    "
    ;

    $allegato $_FILES['allegato']['tmp_name'];
    $allegato_type $_FILES['allegato']['type'];
    $allegato_name $_FILES['allegato']['name'];

    $headers "From: " $mail;
    $msg "";

    if (
    is_uploaded_file($allegato))
    {
    $file fopen($allegato,'rb');
    $data fread($filefilesize($allegato));
    fclose($file);
    $data chunk_split(base64_encode($data));
    $semi_rand md5(time());
    $mime_boundary "==Multipart_Boundary_x{$semi_rand}x";

    $headers .= "\nMIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"{$mime_boundary}\"";
    $msg .= "This is a multi-part message in MIME format.\n\n";
    $msg .= "--{$mime_boundary}\n";


    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $messaggio "\n\n";
    $msg .= "--{$mime_boundary}\n";

    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data "\n\n";

    $msg .= "--{$mime_boundary}--\n";

      if (
    mail($destinatario$oggetto$msg$headers))
       {

        
    header("Refresh: 5; URL=index.html");
        echo 
    "
    <p align='center'>Mail inviata con successo ! 
     Sarete contattati al più presto ! 

     Reindirizzamento....</p>"
    ;

       }else{
      
         echo 
    "

    Errore!</p>"
    ;
     
      }

    }
    else
    {
    echo 
    "

    Errore!</p>"
    ;
    }
    ------------

    In questo modo non è previsto l'invio senza allegato.

    ..confido in una rettifica di un esperto..

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    Grazie mille...speriamo qualcuno esperto sappia modificarlo....grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Non c'è granchè da modificare. Dovresti solo inserire una condizione che verifica la presenza o meno del file. Oppure puoi scrivere tutto il blocco di codice relativo alla costruzione della mail nell'else di is_uploaded_file ed inviare lo stesso la mail ma senza allegarci la variabile del file ed il resto...ma così facendo appesantiresti lo script, avresti una ripetizione di codice..

    ..avere ripetizioni di codice non è una buona pratica (forumisti professionisti di html e non insegnano ).

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121

    help

    mi accontenterei anche di appesantire il codice...purchè funzioni.....ma purtroppo non è proprio il mio campo e non so proprio dove mettere mano ho paura che se non trovo qualche buona anima che mi aiuta.....dovrà rimanere così.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Per collaborazioni c'è una sezione apposita nel forum. Se non ti interessa il peso del codice fai copia e incolla .

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    Sei paziente?
    In pratica nell' else così?:

    Codice PHP:
    if ...............(is_uploaded_file($allegato)) 

    $file fopen($allegato,'rb'); 
    $data fread($filefilesize($allegato)); 
    fclose($file); 
    $data chunk_split(base64_encode($data)); 
    $semi_rand md5(time()); 
    $mime_boundary "==Multipart_Boundary_x{$semi_rand}x"

    $headers .= "\nMIME-Version: 1.0\n"
    $headers .= "Content-Type: multipart/mixed;\n"
    $headers .= " boundary=\"{$mime_boundary}\""
    $msg .= "This is a multi-part message in MIME format.\n\n"
    $msg .= "--{$mime_boundary}\n"


    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"
    $msg .= "Content-Transfer-Encoding: 7bit\n\n"
    $msg .= $messaggio "\n\n"
    $msg .= "--{$mime_boundary}\n"

    $msg .= "Content-Disposition: attachment;\n"
    $msg .= " filename=\"{$allegato_name}\"\n"
    $msg .= "Content-Transfer-Encoding: base64\n\n"
    $msg .= $data "\n\n"

    $msg .= "--{$mime_boundary}--\n"

      if (
    mail($destinatario$oggetto$msg$headers)) 
       { 

        
    header("Refresh: 5; URL=index.html"); 
        echo 
    "
    <p align='center'>Mail inviata con successo ! 
     Sarete contattati al più presto ! 

     Reindirizzamento....</p>"


       }else{ 
       
    $destinatario $_POST['destinatario']; 
    $nome=$_POST['nome']; 
    $cognome=$_POST['cognome']; 
    $oggetto=$_POST['oggetto']; 
    $mail=$_POST['mail']; 
    $citta=$_POST['citta']; 
    $telefono=$_POST['telefono']; 
    $message=$_POST['message']; 

    $messaggio=
     Nome : 
    $nome 
     Cognome : 
    $cognome 
     Oggetto : 
    $oggetto 
     Mail : 
    $mail 
     Città : 
    $citta 
     Telefono : 
    $telefono 
     Messaggio : 
    $message 
    "

         echo 
    "

    Errore!</p>"

      
      } 


    else 

    echo 
    "

    Errore!</p>"



  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Codice PHP:
    if (is_uploaded_file($allegato))  
    {  
    $file fopen($allegato,'rb');  
    $data fread($filefilesize($allegato));  
    fclose($file);  
    $data chunk_split(base64_encode($data));  
    $semi_rand md5(time());  
    $mime_boundary "==Multipart_Boundary_x{$semi_rand}x";  

    $headers .= "\nMIME-Version: 1.0\n";  
    $headers .= "Content-Type: multipart/mixed;\n";  
    $headers .= " boundary=\"{$mime_boundary}\"";  
    $msg .= "This is a multi-part message in MIME format.\n\n";  
    $msg .= "--{$mime_boundary}\n";  


    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";  
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";  
    $msg .= $messaggio "\n\n";  
    $msg .= "--{$mime_boundary}\n";  

    $msg .= "Content-Disposition: attachment;\n";  
    $msg .= " filename=\"{$allegato_name}\"\n";  
    $msg .= "Content-Transfer-Encoding: base64\n\n";  
    $msg .= $data "\n\n";  

    $msg .= "--{$mime_boundary}--\n";  

      if (
    mail($destinatario$oggetto$msg$headers))  
       {  

        
    header("Refresh: 5; URL=index.html");  
        echo 
    "
    <p align='center'>Mail inviata con successo ! 
     Sarete contattati al più presto ! 

     Reindirizzamento....</p>"
    ;  

       }  else {

            echo 
    "Errore";
       }

    } else {  
        
    $destinatario $_POST['destinatario'];  
    $nome=$_POST['nome'];  
    $cognome=$_POST['cognome'];  
    $oggetto=$_POST['oggetto'];  
    $mail=$_POST['mail'];  
    $citta=$_POST['citta'];  
    $telefono=$_POST['telefono'];  
    $message=$_POST['message'];  

    $messaggio="  
     Nome : 
    $nome  
     Cognome : 
    $cognome  
     Oggetto : 
    $oggetto  
     Mail : 
    $mail  
     Città : 
    $citta  
     Telefono : 
    $telefono  
     Messaggio : 
    $message  
    "
    ;  

      if (
    mail($destinatario$oggetto$msg$headers))  
       {  

        
    header("Refresh: 5; URL=index.html");  
        echo 
    "
    <p align='center'>Mail inviata con successo - MA SENZA ALLEGATO - ! 
     Sarete contattati al più presto ! 

     Reindirizzamento....</p>"
    ;  

        }  else { 

            echo 
    "Errore";
        }

      } 

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    So che un semplice grazie è poco!!!!

    chedimi tutto (o quasi)!!! sarò riconoscente

    un saluto
    Robi

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie a te

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 © 2024 vBulletin Solutions, Inc. All rights reserved.