Visualizzazione risultati 1 fino 9 di 9

Discussione: Come funzionano i moduli <form> e invio mail php ?

  1. #1
    Guest

    Question Come funzionano i moduli <form> e invio mail php ?

    ciao ragazzi scusate la mi ignoranza sono un auto didatta matricola e cerco di capirci qual cosa . avrei bisogno di creare una pagina con dei campi da compilare e inviare ,ho provato questo
    http://www.webmasterpoint.org/php/re...ato-testo.html

    però anzi che ricevere la mail con i campi compilati con nome cognome ecc... mi arriva questa mail



    - ha inviato il seguente messaggio:


    ------------

    To report abuses or spam please follow this link: http://sp.altervista.it/s.php/aW9lZGlvfC9pbnZpYS5waHA=


    dove è che sbaglio ? grazie ragazzi

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Sostituisci:

    Codice PHP:
    mail($indirizzo,"Messaggio da parte di $nome: $oggetto" ,"$nome - $email ha inviato il seguente messaggio:" ,"$messaggio");
    con:

    Codice PHP:
    mail($indirizzo,"Messaggio da parte di $nome: $oggetto" ,"$nome - $email ha inviato il seguente messaggio:".$messaggio,'FROM: ioeDio.altervista.org');
    In questi casi, guarda la documentazione ufficiale di mail()

    ...ovviamente "FROM: ioeDio.altervista.org" lo puoi modificare come vuoi

    Ciao!

  3. #3
    Guest

    Predefinito

    grazie alemoppo di avermi risposto , pero il contenuto della mail non è cambiato ,è cambiato il mittente che prima era " Apache" ora è
    "ioeDio.altervista.org@ns130.altervista.org"

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Scusami.. in effetti non avevo letto tutto lo script

    Sostituisci lo script con questo:
    Codice PHP:
    <?php
    $indirizzo
    ='tuamail@dominio.it'; #modificare
    $da = 'ioeDio.altervista.org'; #puoi modificare

    if(isset($_POST['oggetto'],$_POST['email'],$_POST['nome'], $_POST['messaggio']))
    {
    if(
    mail($indirizzo,'Messaggio da parte di '.$_POST['nome'].' : '.$_POST['oggetto'] ,$_POST['nome'].' - '.$_POST['email'].' ha inviato il seguente messaggio:'.$_POST['messaggio'],'From: '.$da))
    echo
    'Il messaggio è stato inviato con successo';
    else
    echo
    'Problemi durante invio email';
    }
    else
    echo
    'parametri pagina non corretti';
    ?>
    <p><a href="http://www.sito.com">Torna al sito</a></p>
    Ultima modifica di alemoppo : 03-06-2011 alle ore 19.04.26

  5. #5
    Guest

    Predefinito

    Grazie mille funziona ,perché in fondo alla mail continua ad uscire questo link

    ------------

    To report abuses or spam please follow this link: http://sp.altervista.it/s.php/aW9lZGlvfC9pbnZpYS5waHA=

    poco importa grazie ancora , se posso approfittare della tua competenza

    si potrebbe aggiungere un campo per l'invio delle immagini ,il pulsante seleziona file sono riuscito a farlo ma ho sempre il problema dell'invio non so come modificare il php grazie ,grazie ,grazie

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Prova a farlo da solo prendendo spunto da qui. Poi, se non riesci, scrivici il sorgente (sia il form, sia il php), che vediamo di aiutarti. Però, se lo fai da solo, hai più soddisfazione

    ah.. per la scritta sotto l'email, non ci si può far nulla...

    Ciao!
    Ultima modifica di alemoppo : 03-06-2011 alle ore 20.15.39

  7. #7
    Guest

    Predefinito

    grazie per l'informazione, però in quello i file si caricano su una directory,io trafficando un pò ho recuperato questo che invia a una mail
    Codice HTML:
    <form action="formmail.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="destinatario" value="ioedio@hotmail.com">
    <table border="0">
    <tr>
      <td>Tua Mail:</td>
      <td><input type="text" name="mittente" value="" /></td>
    </tr>
    <tr>
      <td>Oggetto:</td>
      <td><input type="text" name="oggetto" value="" /></td>
    </tr>
    <tr>
      <td>Messaggio:</td>
      <td><textarea cols="20" rows="4" name="messaggio"></textarea></td>
      </tr>
    <tr>
      <td>Allega file:</td>
      <td><input type="file" name="allegato" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" value="Invia" /></td>
    </tr>
    </table>
    </form>	

    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];

    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];

    // Creo 2 variabili che riempirò più avanti...
    $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 .= $messaggio . "\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }
    else
    {
    $msg = $messaggio;
    }

    // Invio la mail
    if (mail($destinatario, $oggetto, $msg, $headers))
    {
    echo
    "<p>Mail inviata con successo!</p>";
    }else{
    echo
    "<p>Errore!</p>";
    }
    ?>

    funziona bene , però per le mie esigenze dovrei aggiungere dei campi ma non so come si fà

    EDIT:

    questa è la tabella che ho fatto io e che non funziona
    Codice HTML:
    <form action="formmail.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="destinatario" value="ioedio@hotmail.com">
    <table border="0"bgcolor="#242424">
    <tr>
      <td><p>Scegli la grafica </p></td>
      <td>  <select action="ìì"type="text" name="subject" id="grafica">
       <option value="Grafica 1 " selected="selected">Grafica 1 </option>
       <option value="Grafica 2 ">Grafica 2 </option>
       <option value="Grafica 3 ">Grafica 3 </option>
       <option value="Grafica 4 ">Grafica 4 </option>
       <option value="Grafica 5 ">Grafica 5 </option>
       <option value="Grafica 6 ">Grafica 6 </option>
       <option value="Grafica 7 ">Grafica 7 </option>
       <option value="Grafica 8 ">Grafica 8 </option>
       <option value="Grafica 9 ">Grafica 9 </option>
       <option value="Grafica 10 ">Grafica 10 </option>
     
    </select></td>
    </tr>
    <tr>
      <td><p>Tua Mail:</p></td>
      <td><input type="text" name="mittente" value="" /></td>
      <tr>
      <td><p>Nome e cognome  </p></td>
      <td><input type="text" name="nome" value="" /></td>
    </tr>
    <tr>
      <td><p>Luogo e data di nascita  </p></p></td>
      <td><input type="text" name="nascita" value="" /></td>
      </tr>
    <tr>
      <td><p>Luogo e data di trapasso   </p></td>
      <td><input type="text" name="trapasso" value="" /></td>
    </tr>
    <tr>  
      <td><p>Foto </p></td>
      <td bgcolor="#fff"><input type="file" name="allegato" /></td>
    <tr></tr>
      <td colspan="2"align="center"><p>Un breve epitaffio di massimo 10 versi<br>
      <textarea cols="35" rows="7" name="messaggio"></textarea></p></td>
    <tr>
      <td colspan="2"align="center"><input type="submit" value="Invia" /></td>
    </tr>
    </table>
    </form>
    Ultima modifica di alemoppo : 04-06-2011 alle ore 22.21.03 Motivo: [html] -> [php] +edit

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Elimina "action="ìì"type="text"" dalla prima select.

    poi, il destinatario non ha senso scriverlo sul form, perché visto che è sempre lo stesso, puoi benissimo scriverlo lato php (anche per sicurezza: altrimenti un utente malintenzionato potrebbe sfruttare il tuo script per inviare fake-mail {cambiando, appunto, l'email di destinazione}).

    Comunque, il sorgente php provalo così:

    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    if(!isset($_POST['subject'], $_POST['mittente'], $_POST['nome'], $_POST['nascita'], $_POST['trapasso'], $_POST['messaggio']))
    die(
    'non hai settato tutti i parametri');

    $destinatario = 'ioedio@hotmail.com';
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = 'subject: '.$_POST['subject']."\nNome: ".$_POST['nome']."\nNascita: ".$_POST['nascita']."\nTrapasso: ".$_POST['trapasso']."\nMessaggio: ".$_POST['messaggio'];

    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];

    // Creo 2 variabili che riempirò più avanti...
    $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 .= $messaggio . "\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }
    else
    {
    $msg = $messaggio;
    }

    // Invio la mail
    if (mail($destinatario, $oggetto, $msg, $headers))
    {
    echo
    "<p>Mail inviata con successo!</p>";
    }else{
    echo
    "<p>Errore!</p>";
    }
    ?>
    Ciao!

  9. #9
    Guest

    Predefinito

    grazie va che una meraviglia , grazie grande!!! grazie

Regole di scrittura

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