Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60

    Modulo contatti in Html che invia allegato a pagina php

    Buonasera,
    Ho un semplice form html che va inviare i dati(allegato compreso) ad una pagina php con il codice che vi linko:
    http://paste.ofcode.org/bdxDdGuXX2ggUjss9Yudsx

    l' html funziona i dati arrivano e l'email arriva al mio indirizzo di posta, l'unico problema è che non arriva l'allegato,infatti provando lo script in locale mi segnale errore alla linea 40 dicendo
    unfined index allegato.
    Come si può risolvere ?
    Grazie a tutti è veramente importante

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Benvenuto.
    Non mostri il codice del form, che è la cosa interessante per la soluzione del problema.
    Il campo di input file si chiama "allegato"? Se sì, controlla di non aver commesso errori di battitura.
    Nel tag <form> hai messo anche l'attributo enctype="multipart/form-data"? Altrimenti i file non arrivano allo script PHP.

  3. #3
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Benvenuto.
    Non mostri il codice del form, che è la cosa interessante per la soluzione del problema.
    Il campo di input file si chiama "allegato"? Se sì, controlla di non aver commesso errori di battitura.
    Nel tag <form> hai messo anche l'attributo enctype="multipart/form-data"? Altrimenti i file non arrivano allo script PHP.
    codice:
    <form method="post" action="contattiAvvalimenti.php">
    <p>Ragione Sociale<span class="asterisco">*</span><u></u><u></u></p>
            <div class="input-group">
              <input type="text" class="form-control" maxlength="50" name="mittente" required>
              </input></div>
            <p>Email<span class="asterisco">*</span></p>
            <div class="input-group">
              <input type="email" class="form-control" maxlength="50" name="Email" required>
              </input>
            </div>
            <p>Recapito Telefonico<span class="asterisco">*</span></p>
    <div class="input-group">
      <input type="tel" class="form-control" maxlength="15" name="Telefono" required>
      </input>
    </div>
     <p>Referente</p>
    <div class="input-group">
      <input type="tel" class="form-control" maxlength="30" name="Referente" >
      </input>
    </div>
    
            Partita Iva<span class="asterisco">*</span>
    <div class="input-group">
    <input type="text" class="form-control" maxlength="50" name="Piva" required>
              </input>
            </div>
                <legend>Dati appalto</legend>
                Ente appaltante<span class="asterisco">*</span>
    <div class="input-group">
    <input type="text" class="form-control" maxlength="50" name="Ente" required>
              </input>
            </div>
            CIG<span class="asterisco">*</span>
    <div class="input-group">
    <input type="text" class="form-control" maxlength="50" name="CIG" required>
              </input>
            </div>
            Oggetto Gare<span class="asterisco">*</span>
    <div class="input-group">
    <input type="text" class="form-control" maxlength="50" name="oggettogare" required>
              </input>
            </div>
            Scadenza gare<span class="asterisco">*</span>
    <div class="input-group">
    <input type="text" class="form-control" maxlength="50" name="scadenzagara" id="datepicker" required>
              </input>
            </div>
            <legend>Requisiti Richiesti</legend>
            Categorie<span class="asterisco">*</span>
    <div class="input-group">
        <select class="form-control" name="ReqCategorie" required>
     <option value="" selected>  </option>
      <option>OG1</option>
      <option>OG2</option>
      <option>OG3</option>
      <option>OG4</option>
      <option>OG5</option>
        <option>OG6</option>
      <option>OG7</option>
      <option>OG8</option>
      <option>OG9</option>
      <option>OG10</option>
      <option>OG11</option>
      <option>OG12</option>
        <option>OG13</option>
      <option>OS1</option>
      <option>OS2</option>
        <option>OS3</option>
      <option>OS4</option>
      <option>OS5</option>
      <option>OS6</option>
      <option>OS7</option>
      <option>OS8</option>
      <option>OS9</option>
      <option>OS10</option>
      <option>OS11</option>
      <option>OS12</option>
      <option>OS13</option>
      <option>OS14</option>
      <option>OS15</option>
      <option>OS16</option>
      <option>OS17</option>
      <option>OS18</option>
      <option>OS19</option>
      <option>OS20</option>
      <option>OS21</option>
      <option>OS22</option>
      <option>OS23</option>
      <option>OS24</option>
      <option>OS25</option>
      <option>OS26</option>
      <option>OS27</option>
      <option>OS28</option>
      <option>OS29</option>
        <option>OS30</option>
          <option>OS31</option>
            <option>OS32</option>
                    <option>OS33</option>
            <option>OS34</option>
    
    
    
    
    
    
    
    </select>
            </div>
            Classifiche<span class="asterisco">*</span>
    <div class="input-group">
        <select class="form-control" name="ReqClassifiche" required>
         <option value="" selected>  </option>
      <option>I</option>
      <option>II</option>
      <option>III</option>
      <option>III-bis</option>
      <option>IV</option>
       <option>IV-bis</option>
         <option>V</option>
           <option>VI</option>
             <option>VII</option>
               <option>VIII</option>
    
    
    
    
    
    </select>
            </div>
            Ulteriore Categoria
    <div class="input-group">
        <select class="form-control" name="UlterioreCategoria">
       <option value="" selected>  </option>
      <option>OG1</option>
      <option>OG2</option>
      <option>OG3</option>
      <option>OG4</option>
      <option>OG5</option>
        <option>OG6</option>
      <option>OG7</option>
      <option>OG8</option>
      <option>OG9</option>
      <option>OG10</option>
      <option>OG11</option>
      <option>OG12</option>
        <option>OG13</option>
      <option>OS1</option>
      <option>OS2</option>
        <option>OS3</option>
      <option>OS4</option>
      <option>OS5</option>
      <option>OS6</option>
      <option>OS7</option>
      <option>OS8</option>
      <option>OS9</option>
      <option>OS10</option>
      <option>OS11</option>
      <option>OS12</option>
      <option>OS13</option>
      <option>OS14</option>
      <option>OS15</option>
      <option>OS16</option>
      <option>OS17</option>
      <option>OS18</option>
      <option>OS19</option>
      <option>OS20</option>
      <option>OS21</option>
      <option>OS22</option>
      <option>OS23</option>
      <option>OS24</option>
      <option>OS25</option>
      <option>OS26</option>
      <option>OS27</option>
      <option>OS28</option>
      <option>OS29</option>
        <option>OS30</option>
          <option>OS31</option>
            <option>OS32</option>
                    <option>OS33</option>
            <option>OS34</option>
    
    
    
    
    
    
    
    </select>
            </div>
             Ulteriori Classifiche
    <div class="input-group">
        <select class="form-control" name="UlterioriClassifiche">
         <option value="" selected>  </option>
      <option>I</option>
      <option>II</option>
      <option>III</option>
      <option>III-bis</option>
      <option>IV</option>
       <option>IV-bis</option>
         <option>V</option>
           <option>VI</option>
             <option>VII</option>
               <option>VIII</option>
    
    
    
    
    
    </select>
            </div>
            
            <div class="input-group">        Allega file
    
    
                                    <input type="File" name="allegato"  id="allegato" accept="application/pdf,application/msword,application/x-zip-compressed"  size="10000"></input>
            </div>
    
                    <div class="input-group">        <p align="center"> Note:</p>
    
    <textarea class="form-control" rows="3" maxlenght="2000" name="Messaggio"></textarea>
    </input>
            </div>
              <strong>Ho letto ed accetto le condizioni sulla <a href="privacy.html"><u>Privacy</u></a></strong>
    <div class="input-group">
                                            <div class="boxinvia">
    
                                                          <button type="submit" class="btn btn-default btn-lg">Invia</button></div>
    
            </div>
                                
            </form>
    Ho aggiunto anche enctype="multipart/form-data" nel campo form ma niente l'allegato non arriva ma il messaggio si
    Ultima modifica di ilterribile; 09-11-2015 a 11:33

  4. #4
    ma dove lo hai aggiunto enctype="multipart/form-data"?
    io non lo vedo.
    andrebbe qua:
    codice:
    <form method="post" action="contattiAvvalimenti.php" enctype="multipart/form-data">

  5. #5
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ma dove lo hai aggiunto enctype="multipart/form-data"?
    io non lo vedo.
    andrebbe qua:
    codice:
    <form method="post" action="contattiAvvalimenti.php" enctype="multipart/form-data">
    L'ho inserito subito dopo ma niente ho risolto cambiando script php
    ecco il nuovo script per chi è interessato
    codice:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = 'miaemail@mail.com';
    $mittente = $_POST['mittente'];
    $Messaggio = $_POST['Messaggio'];
    $Email = $_POST['Email'];
    $Telefono = $_POST['Telefono'];
    $Referente= $_POST['Referente'];
    $Piva= $_POST['Piva'];
    $Ente=$_POST['Ente'];
    $CIG=$_POST['CIG'];
    $oggettogare=$_POST['oggettogare'];
    $scadenzagara=$_POST['scadenzagara'];
    $ReqCategorie=$_POST['ReqCategorie'];
    $ReqClassifiche=$_POST['ReqClassifiche'];
    $UlterioreCategoria=$_POST['UlterioreCategoria'];
    $UlterioriClassifiche=$_POST['UlterioriClassifiche'];
    $oggetto = "Richiesta Ente:'$Ente'CIG:'$CIG';
    $successo= 'Email inviata con successo!Vi risponderemo al piu presto';
    $errore= 'Email non inviata compilare correttamente tutti i campi';
    
    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];
    
    // Creo altre due variabili ad uno interno
    $headers = "From: " . $mittente;
    $msg = "";
    
    // Verifico se il file è stato caricato correttamente via HTTP
    // In caso affermativo proseguo nel lavoro...
    if (is_uploaded_file($allegato))
    {
      // Apro e leggo il file allegato
      $file = fopen($allegato,'rb');
      $data = fread($file, filesize($allegato));
      fclose($file);
    
      // Adatto il file al formato MIME base64 usando base64_encode
      $data = chunk_split(base64_encode($data));
    
      // Genero il "separatore"
      // Serve per dividere, appunto, le varie parti del messaggio.
      // Nel nostro caso separerà la parte testuale dall'allegato
      $semi_rand = md5(time());
      $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
      
      // Aggiungo le intestazioni necessarie per l'allegato
      $headers .= "\nMIME-Version: 1.0\n";
      $headers .= "Content-Type: multipart/mixed;\n";
      $headers .= " boundary=\"{$mime_boundary}\"";
    
      // Definisco il tipo di messaggio (MIME/multi-part)
      $msg .= "This is a multi-part message in MIME format.\n\n";
    
      // Metto il separatore
      $msg .= "--{$mime_boundary}\n";
    
      // Questa è la parte "testuale" del messaggio
      $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      $msg .= "Content-Transfer-Encoding: 7bit\n\n";
      $msg .="Abbiamo ricevuto la seguente richiesta, vi risponderemo al più presto ' .\n\n";
      $msg .= "Messaggio:'$messaggio' . \n\n";
      $msg .= "'Ragione Sociale: $mittente' . \n\n";
      $msg .= "Telefono: '$Telefono'  .\n\n";
      $msg .="Email: '$Email' .\n\n";
      $msg .="Referente: '$Referente' .\n\n";
      $msg .="Piva : '$Piva' .\n\n";
      $msg .="Ente : '$Ente' .\n\n";
      $msg .="CIG: '$CIG' .\n\n";
      $msg .="Oggetto gare: '$oggettogare' .\n\n";
      $msg .="Scadenza gara: '$scadenzagara' .\n\n";
      $msg .="Requsiti Categorie: '$ReqCategorie' .\n\n";
      $msg .="Requsiti Classifiche : '$ReqClassifiche' .\n\n";
      $msg .="Ulteriore Categoria  : '$UlterioreCategoria' .\n\n";
      $msg .="Ulteriore Classifica : '$UlterioriClassifiche' .\n\n";
      
    
    
    
    
    
      // Metto il separatore
      $msg .= "--{$mime_boundary}\n";
    
      // Aggiungo l'allegato al messaggio
      $msg .= "Content-Disposition: attachment; filename=\"{$allegato_name}\"\n";
      $msg .= "Content-Transfer-Encoding: base64\n\n";
      
      // chiudo con il separatore
      $msg .= "--{$mime_boundary}--\n";
    }
    // se non è stato caricato alcun file
    // preparo un semplice messaggio testuale
    else
    {
      $msg .="Abbiamo ricevuto la seguente richiesta, vi risponderemo al più presto ' .\n\n";
      $msg .= "Messaggio:'$messaggio' . \n\n";
      $msg .= "'Ragione Sociale:$mittente' . \n\n";
      $msg .= "Telefono: '$Telefono'  .\n\n";
      $msg .="Email: '$Email' .\n\n";
      $msg .="Referente:'$Referente' .\n\n";
      $msg .="Piva:'$Piva' .\n\n";
      $msg .="Ente: '$Ente' .\n\n";
      $msg .="CIG:'$CIG' .\n\n";
      $msg .="Oggetto gare: '$oggettogare' .\n\n";
      $msg .="Scadenza gara: '$scadenzagara' .\n\n";
      $msg .="Requsiti Categorie: '$ReqCategorie' .\n\n";
      $msg .="Requsiti Classifiche : '$ReqClassifiche' .\n\n";
      $msg .="Ulteriore Categoria  : '$UlterioreCategoria' .\n\n";
      $msg .="Ulteriore Classifica : '$UlterioriClassifiche' .\n\n";
      
    }
    
    // Invio la mail
    if (mail($destinatario, $oggetto, $msg, $headers))
    {    
         echo 'Email inviata correttamente!';
          header( "refresh:2;url=http:/contattiAvvalimenti.html" ); 
        echo "<script language=\"JavaScript\">\n"; 
        echo "alert(\"$successo\");\n"; 
        echo "</script>";
    }
    else
    {
      echo "<p>Errore!</p>";
       header( "refresh:2;url=http:/contattiAvvalimenti.html" ); 
        echo "<script language=\"JavaScript\">\n"; 
        echo "alert(\"$errore\");\n"; 
        echo "</script>";
    }
    ?>

  6. #6
    subito dopo dove?

  7. #7
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    Quote Originariamente inviata da fermat Visualizza il messaggio
    subito dopo dove?
    Nel codice Html all'inizio form va be in ogni caso ho risolto cosi è più semplice grz

Tag per questa discussione

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.