+ Rispondi alla Discussione
Risultati da 1 a 5 di 5

Form di invio con allegato [Contact form] in PHP

Ultimo Messaggio di lucabartoli il:
  1. #1
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92

    Form di invio con allegato [Contact form] in PHP

    Salve a tutti,
    vorrei realizzare un form di contatti/lavora con noi,
    con la possibilità di allegare una foto ed un file di curriculum.

    Il mio HTML è il seguente (ho lasciato solo alcuni campi per esempio..):

    Codice:
    <form action="" method="post" enctype="multipart/form-data" id="lavora_con_noi">
                  <p>Dati personali:</p>
                  <table border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td><label for="nome">Nome:*</label>
                        <input type="text" name="nome" id="nome" /></td>
                      <td><label for="cognome">Cognome:*</label>
                        <input type="text" name="cognome" id="cognome" /></td>
                    </tr>
                    <tr>
                      <td><label for="sesso">Sesso:*</label>
                        <select name="sesso" id="sesso">
                          <option>Seleziona...</option>
                          <option value="Uomo">Uomo</option>
                          <option value="Donna">Donna</option>
                      </select></td>
                    </tr>
                    <tr>
                      <td><label for="telefono">Telefono:*</label>
                      <input type="text" name="telefono" id="telefono" /></td>
                    </tr>
                    <tr>
                      <td><label for="email">Email:*</label>
                      <input type="text" name="email2" id="email" /></td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td colspan="2"><p>Allegati</p></td>
                    </tr>
                    <tr>
                      <td colspan="2"><label for="fototessera">Fototessera:</label>
                        <input type="file" name="fototessera" id="fototessera" />
                      <p><span>Puoi inviare una tua foto non superiore a 100 KB, in uno dei formati &quot;.jpg&quot;, &quot;.gif&quot;, &quot;.png&quot;, &quot;.bmp&quot;</span></p></td>
                    </tr>
                    <tr>
                      <td colspan="2"><label for="curriculum">Curriculum Vitae:</label>
                          <input type="file" name="curriculum" id="curriculum" />
                        <p><span>Puoi inviare una tuo curriculum non superiore a 300 KB, in uno dei formati &quot;.pdf&quot;, &quot;.txt&quot;, &quot;.doc&quot;</span></p></td>
                    </tr>
                    <tr>
                      <td colspan="2"><input type="submit" name="invia" id="invia" value="Invia richiesta" /></td>
                    </tr>
                  </table>
                </form>
    Ora dovrei fare il send.php,
    se ci fosse anche il validate sarebbe perfetto, ma senza va benissimo, quello lo so fare..


    grazie a tutti.

  2. #2
    Moderatore L'avatar di lucabartoli
    Data Registrazione
    Feb 2010
    Località
    Torino
    Messaggi
    510
    Ciao Anu,
    questo è un semplicissimo script (non puoi usarlo così, va integrato) per fare quello che ti serve:
    Codice PHP:
            
                 
    if(isset($_FILES['fototessera']))
                 {
                     
    $file $_FILES['fototessera'];
                     if(
    $file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
                     {
                         
    //Il tuo file è stato caricato correttamente e si trova in $file['tmp_name']
                     
    }
                 } 
    Il tuo file è nella cartella temporanea di php, se vuoi salvarlo in modo permanente, devi utilizzare la funzione move_uploaded_file($file['tmp_name'], '/cartella_upload/'.$file['name']).
    Se vuoi inviarlo nella mail che ricevi dal form, puoi semplicemente utilizzare $file['tmp_name'] come riferimento al file che è stato caricato.
    Attenzione a validare il mime type: il mime del file caricato si trova in $file['type'].
    Per la dimensione, fai riferimento a $file['size'].

    Spero ti sia d'aiuto,
    Luca.

  3. #3
    Anu
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92
    Benissimo grazie, credo di aver capito!
    Dopo provo a creare il file send.php

  4. #4
    Anu
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92
    Sono arrivato a qui con il PHP, funzionano tutti li input, ora dovrei implementare le select e gli upload..

    Codice:
    <?php
    
    
    $nome = $_POST['nome']; // contain name of person
    $cognome = $_POST['cognome']; // contain surname of person
    $stato_civile = $_POST['stato_civile']; 
    $luogo_di_nascita = $_POST['luogo_di_nascita']; 
    $data_di_nascita = $_POST['data_di_nascita']; 
    $via = $_POST['via']; 
    $civico = $_POST['civico']; 
    $cap = $_POST['cap']; 
    $comune_residenza = $_POST['comune_residenza']; 
    $nazione = $_POST['nazione']; 
    $provincia = $_POST['provincia']; 
    $email = $_POST['email']; // Email address of sender 
    $telefono = $_POST['telefono'];
    $cellulare = $_POST['cellulare']; 
    
    
    $body = $_POST['text']; // Your message 
    $receiver = "a.furlan@claimbs.com" ; // hardcorde your email address here - This is the email address that all your feedbacks will be sent to 
    if (!empty($nome) & !empty($email) && !empty($body)) {
        $body = "Nome: {$nome}\n\nCognome: {$cognome}\n\nStato civile: {$stato_civile}\n\nLuogo di nascita: {$luogo_di_nascita}\n\nData di nascita: {$data_di_nascita}\n\nVia: {$civico} {$via} {$cap} {$comune_residenza} {$provincia} {$nazione}\n\nTelefono: {$telefono}\n\nCelulare: {$cellulare}\n\n{$body}";
        $send = mail($receiver, 'Richiesta di valutazione del curriculum arrivato da', $body, "From: {$email}");
        if ($send) {
            echo 'true'; //if everything is ok,always return true , else ajax submission won't work
        }
    
    
    }
    
    
    ?>

  5. #5
    Moderatore L'avatar di lucabartoli
    Data Registrazione
    Feb 2010
    Località
    Torino
    Messaggi
    510
    Prima di fare il send, verifica la validità di tutti i dati in input, poi inserisci il codice che ti ho girato (va un po' modificato per fare in modo che lanci un return false se qualcosa va male), e poi ti occupi di verificare il file (dimensione, estensione, ecc).
    Ricorda anche che l'invio di una mail con allegato, non è scritta in text plain, ma è un messaggio multipart, perciò deve essere fatto in maniera un po' differente (se cerchi in giro ci sono moltissime guide).
    Se vuoi semplificarti di molto la vita, ti consiglio la classe PHPMailer, che fa tutto questo in maniera molto più semplice.

    Luca

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.