Visualizzazione risultati 1 fino 19 di 19

Discussione: mi dareste una mano a creare un form mail in php?

  1. #1
    Guest

    Predefinito mi dareste una mano a creare un form mail in php?

    Ciao a tutti, volevo chiedervi se qualcuno è disponibile ad aiutarmia creare un form mail in php spiegandomi passo a passo le cose da fare (anche a cosa servono)

    intanto ringrazio in anticipo

    ciao ciao

  2. #2
    Guest

    Predefinito

    Allora fai cosi:
    Lo invii tramite form..
    Codice HTML:
    <html>
    
    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252">
    <title>.::FormEmail::.</title>
    </head>
    
    
    <h1 align="center"><font color="#FFFFFF"><br>
      <font size="7">FormEmail</font></font></h1>
    <p align="center"><font color="#FFFFFF">Contattaci tramite questo form che posteremo sotto.</font></p>
    
    <hr>
    <font color="#FFFFFF">
    <br>
    </font>
    <form name="form1" method="post" action="mailto.php">
    	<div align="center">
    		<font color="#FFFFFF">
    		<br>
    		Il tuo Nickname: <br>
    		<input name="nick" type="text" id="nick"> <br>
    		Il tuo consiglio <br>
    		<textarea name="testo" cols="30" rows="7" wrap="VIRTUAL" id="testo"></textarea>
    		<br>
    		<input type="submit" name="Submit" value="Invia">
    		<input type="reset" name="Submit2" value="Reset"></font></div>
    </form>
    
    <hr>
    </p>
    </body>
    </html>
    ovviamente come ai visto tramite sto form invii i dati a mailto.php cosi
    Codice PHP:
    <?

    $testo
    = $_POST['testo'];
    $email = $_POST['nick'];
    $leo = "ind email";
    $testo = stripslashes($testo);
    $email = stripslashes($nick);

    $subject = "Inviato da ( $nick )";
    $message = "$testo";

    mail($leo, $subject, $testo);
    print
    "<html>
    <head>
    <body text=\"#FFFFFF\">

    </head>

    <body>

    </body>

    </html>"
    ;

    echo
    'consiglio inviato con successo';

    include(
    "contactme.php");
    ?>
    Ps dimmi se va...
    saluti ang

  3. #3
    Guest

    Predefinito

    non l'ho provato, ma io vorrei che qualcuno fosse disponibile a spiegarmi il funzionamento di tutte quelle scritte,
    poi se io voglio cambiare i campi come faccio ang, saresti disposto ad insegnarmi?
    se si ti ringrazio tantissimo

  4. #4
    Ospite Guest

    Predefinito

    http://weblink.altervista.org/php/index7.php questo dovrebbe spiegarti tutto per bene...

  5. #5
    Sindone non è connesso Neofita
    Data registrazione
    04-10-2005
    Messaggi
    19

    Predefinito

    Visto che questa discussione è stata aperta, chiedo al volo se qualcuno conosce un form che permetta agli utenti di inviare email direttamente al gestore del sito/portale (e solo a lui!!!).
    Roba del tipo "invia una richiesta al webmaster", "fai una domanda a tizio", e similari...

  6. #6
    Guest

    Predefinito

    non ho capito bene ,cosa vuoi dire, inviare dove?
    cmq potresti fare 1 pagina con form ke scrive in un txt con fopen ecc
    poi fai 1 pagina ke proteggi con sessioni di admin o mod e li ci fai un bel echo del txt
    forse non o capito un h
    spiegati meglio

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da Sindone
    Visto che questa discussione è stata aperta, chiedo al volo se qualcuno conosce un form che permetta agli utenti di inviare email direttamente al gestore del sito/portale (e solo a lui!!!).
    Roba del tipo "invia una richiesta al webmaster", "fai una domanda a tizio", e similari...
    copia il codice del post #2 quello scritto da ang e metti la tua email o quella del webmaster

  8. #8
    Guest

    Predefinito

    nn ho capito molto bene scusate sono alle prime armi e mi sto rifacendo questo sito http://spacevertigo.altervista.org

    io volevo creare un form che mi inviasse nella mia casella di posta, che con l'alias nn ce l'ho, le richieste di poesie o immagini... me lo potete spiegare?

  9. #9
    L'avatar di Saturnix
    Saturnix non è connesso Utente attivo
    Data registrazione
    11-04-2006
    Messaggi
    462

    Predefinito untitled

    Ti consiglio di usare alcuni di quei servizi, già creati, apposta per i webmaster...

    EDIT: io uso questo servizio
    Ultima modifica di Saturnix : 24-09-2006 alle ore 22.26.26 Motivo: edit
    Saturnix

  10. #10
    Guest

    Predefinito

    Su php.html.it si trovano delle guide molto interessanti anche per principianti, c'è praticamente di tutto, e la maggior parte degli script proposti hanno della documentazione che spiega come personalizzarli.

  11. #11
    Guest

    Predefinito

    ho dato una okkiata al sito e mi sono creato un form...però mi da errore quando faccio invia...

    questo è il link http://spacevertigo.altervista.org/form/form2.htm

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Che errore ti dà? Che script stai utilizzando?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da spacevertigo
    ho dato una okkiata al sito e mi sono creato un form...però mi da errore quando faccio invia...

    questo è il link http://spacevertigo.altervista.org/form/form2.htm
    compilando il form intanto c'è un errore nei confronti...

    nonostante i campi siano pieni
    hai fatto un confronto tipo
    if($_POST['nome'] == "")
    else

    ??? o no?

  14. #14
    Guest

    Predefinito

    Funcol l'errore è che nn invia l'email

    questo è quello che ho fatto io

    form2.htm

    Codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>The angel</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    
    <body background="/sfondi/web-link60.jpg">
    
    <form action="mail.php" enctype="multipart/form-data" method="post" name="form1" id="form1" target="_self">
    <div class="title" style="color:#C0C0C0; background-color:#808080">SCRIVI AL WEBMASTER</div>
    <div class="box" style="color:#808080; background-color:#CCCCCC">
    <div style="padding:4px;">
    Tuo Nome<br /><input type="text" name="sender_name" size="30" /><br /><br />
    Tua Email<br /><input type="text" name="sender_email" size="30" /><br /><br />
    Messaggio:<br /><textarea name="msg" rows="40" cols="40"></textarea><br /><br />
    <input type="submit" value="INVIA" />
    </div>
    </div>
    </center>
    </form>
    
    </body>
    </html>
    questo è il codice php

    mail2.php

    Codice:
    <?php 
    if(isset($_POST['email']) && isset($_POST['nome'])){ 
    $header=""; 
    $msg=""; 
    $boundary='--' . md5( uniqid(time()) ); 
    $ctencoding="8bit"; 
    $subject="Invio dedica/poesia"; 
    $body=""; 
    $to="spacevertigosito@hotmail.it"; 
    $from=$_POST['email']; 
    $fromname=$_POST['nome']; 
    $ctype="application/octet-stream"; 
     
    
    $header.="From: \"$fromname\" <$from>\nReturn-Path: $from\nX-Priority: 3\nTo: $to\n"; 
    $header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n"; 
    $header.="Content-Transfer-Encoding: 8bit\n"; 
    
       $msg .="This is a multi-part message in MIME format.\n--$boundary\n"; 
       $msg .= "Content-Type: text/plain; charset=iso-8859-1\n"; 
       $msg .= "Content-Transfer-Encoding: 8bit\n\n" . $body ."\n"; 
        
       $msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n"; 
       $msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n  filename=\"$name\"\n"; 
           $linesz= filesize( $basename)+1; 
           $fp= fopen( $basename, 'r' ); 
           $content = chunk_split(base64_encode(fread( $fp, $linesz))); 
           fclose($fp); 
       $msg .=    chr(13) . chr(10).$content; 
    
    $result = @mail($to,$subject,$msg."\n",$header); 
    
    if($result){ 
             
            echo "<p>Il tuo messaggio &egrave; stato inoltrato con successo!</p><p>Grazie!</p>"; 
        }else{ 
             
            echo "<p>E' stato riscontrato un errore sul server.<br>Impossibile inviare il messaggio.</p><p>Riprova pi&ugrave; tardi.</p>"; 
        } 
    
    }else{ 
        echo "<p>Non hai compilato tutti i campi del modulo!</p><p>Campi mancanti:</p>"; 
        if(!isset($_POST['nome'])){ echo "Nome<br>";} 
        if(!isset($_POST['email'])){ echo "Indirizzo e-mail<br>";} 
    } 
    ?>

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Nel file form2.htm modifica questa riga:
    Codice HTML:
    <input type="text" name="sender_name" size="30" />
    In questo modo:
    Codice HTML:
    <input type="text" name="nome" size="30" />
    E questa riga:
    Codice HTML:
    <input type="text" name="sender_email" size="30" />
    In questo modo:
    Codice HTML:
    <input type="text" name="email" size="30" />
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    Guest

    Predefinito

    ho appena sistemato però ora mi dice campi mancanti nome anche se lo compilo corretamente


    EDIT: sto andando via con la testa...ho risistemato il file...funziana però su mail.php vorrei integrare anche le opzioni di <option> e <tetx area> che non riesco a mettere

    questo è il codice per intero

    Codice PHP:
    <?php
    if(isset($_POST['email']) && isset($_POST['nome'])){
    $header="";
    $msg="";
    $boundary='--' . md5( uniqid(time()) );
    $ctencoding="8bit";
    $subject="Invio allegato";
    $body="In allegato il documento";
    $to="spacevertigo87@yahoo.it";
    $from=$_POST['email'];
    $fromname=$_POST['nome'];
    $ctype="application/octet-stream";
    $basename=$_FILES['all']['tmp_name'];
    $name=$_FILES['all']['name'];

    $header.="From: \"$fromname\" <$from>\nReturn-Path: $from\nX-Priority: 3\nTo: $to\n";
    $header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
    $header.="Content-Transfer-Encoding: 8bit\n";

    $msg .="This is a multi-part message in MIME format.\n--$boundary\n";
    $msg .= "Content-Type: text/plain; charset=iso-8859-1\n";
    $msg .= "Content-Transfer-Encoding: 8bit\n\n" . $body ."\n";

    $msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n";
    $msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n filename=\"$name\"\n";
    $linesz= filesize( $basename)+1;
    $fp= fopen( $basename, 'r' );
    $content = chunk_split(base64_encode(fread( $fp, $linesz)));
    fclose($fp);
    $msg .= chr(13) . chr(10).$content;

    $result = @mail($to,$subject,$msg."\n",$header);

    if(
    $result){

    echo
    "<p>Il tuo messaggio &egrave; stato inoltrato con successo!</p><p>Grazie!</p>";
    }else{

    echo
    "<p>E' stato riscontrato un errore sul server.<br>Impossibile inviare il messaggio.</p><p>Riprova pi&ugrave; tardi.</p>";
    }

    }else{
    echo
    "<p>Non hai compilato tutti i campi del modulo!</p><p>Campi mancanti:</p>";
    if(!isset(
    $_POST['nome'])){ echo "Nome<br>";}
    if(!isset(
    $_POST['email'])){ echo "Indirizzo e-mail<br>";}
    }
    ?>
    vorrei che anche alla fine facesse un refresch dopo 3secondi e mi mandasse alla home della pagina iniziale del sito ovvero http://spacevertigo.altervista.org/index2.htm


    FunCool: Non fare UP, usa il tasto Edita.
    Ultima modifica di funcool : 08-10-2006 alle ore 14.25.06

  17. #17
    L'avatar di Saturnix
    Saturnix non è connesso Utente attivo
    Data registrazione
    11-04-2006
    Messaggi
    462

    Predefinito funziona:

    Per risolvere una volta per tutte.... segue uno script perfettamente funzionante.... sovrascrivi in base alle tue esigenze le parti evidenziate.
    File HTML, all'interno dei tag "body" scrivi questo script:
    <form name="mail_form" method="post" action="contact.php">
    <p><font color="#FFFFFF"> <br>
    Tuo indirizzo mail:
    <input name="sender_mail" type="text" id="sender_mail">
    </font></p>
    <p><font color="#FFFFFF">Oggetto della mail:
    <input name="subject" type="text" id="subject">
    </font><font color="#FFFFFF"><br>
    </font></p>
    <p><font color="#FFFFFF">Testo della mail</font><font color="#FFFFFF">:<br>
    <textarea name="message_txt" cols="30" rows="7" wrap="VIRTUAL" id="testo"></textarea>
    </font></p>
    <p><font color="#FFFFFF">
    <input type="submit" name="Submit" value="Invia">
    <br>
    <br>
    </font></p>
    </form>
    File PHP, DEVE CHIAMARSI contact.php altrimenti non lo trova !!!

    <?

    $testo = $_POST['message_txt'];
    $sender_mail = $_POST['sender_mail'];
    $subject = $_POST['subject'];
    $leo = "TUA MAIL QUI";
    $testo = stripslashes($testo);

    $message = "Hai appenta ricevuto un messaggio dal tuo form di contatti on-line
    Mittente: $sender_mail ;
    Contenuto: $testo";

    mail($leo, $subject, $message);
    print"<html>
    <head>
    <title>Invio riuscito</title>

    </head>

    <body>
    <p>Scrivi qui, ciò che l'utente deve leggere dopo aver inviato il messaggio</p>
    </body>
    </html>";
    ?>
    Sperando di esserti stato utile.
    Ultima modifica di Saturnix : 08-10-2006 alle ore 17.35.26
    Saturnix

  18. #18
    Guest

    Predefinito aiuto!

    Salve ragazzi, scusate se mi intrometto ma volevo chiedere a chi se ne intende un piccolo aiutino....
    Ho creato una pagina per inviare una mail con allegato alla mia casella di posta, il codice è il seguente.

    contatti.html

    Codice:
    <form action="dove si trova lo script mail.php"  method="post" enctype="multipart/form-data" name="inviamail" onSubmit="return ControllaMail()" onReset="return azzeraForm()">
    
    <p>
    
    <table>
    
    <tr>
    <th>
    e-mail:
    <td>
    
    <input type="text" name="mail">
    <th>
    Oggetto:
    <td>
           <select size="1" name="oggetto">
           <option name="seleziona" value="seleziona">seleziona</option>
           <option>Prodotti</option>
           <option>Affitti</option>
           <option>Informazioni</option>
           <option>Altro</option>
           </select>
    
    
    <tr>
    <th>
    Nome:
    <td>
    <input type="text" name="nominativo">
    <th>
    Telefono:
    <td>
    <input type="text" name="telefono">
    
    <tr>
    <th>
    Indirizzo:
    <td>
    <input type="text" name="indirizzo">
    <th>
    Città:
    <td>
    <input type="text" name="citta">
    
    </table>
    
    <br />
    
    <input type="file" name="allegato"
    
    
    <br />
    
    <textarea name="testo" rows="15" cols="40">
    </textarea>
    
    <br />
    <br />
    
    <button type="submit" name="invia" value="Invia">Invia</button>
    <button type="reset" name="cancella">Cancella</button>
    
    </form>
    mail.php

    Codice:
    <?php
    
    // Recupero il valore dei campi del form
    $nominativo=$_POST['nominativo'];
    $mail=$_POST['mail'];
    $oggetto=$_POST['oggetto'];
    $testo=$_POST['testo'];
    $telefono=$_POST['telefono'];
    $indirizzo=$_POST['indirizzo'];
    $citta=$_POST['citta'];
    $email_to="mia e-mail";
    $page_form="dove si trova contatti.html";
    
    $messaggio="Nome:"."$nominativo"."\n\n"."E-Mail:"."$mail"."\n\n"."Telefono:"."$telefono"."\n\n"."Indirizzo:"."$indirizzo"."\n\n"."Città:"."$citta"."\n\n"."Testo:"."\n\n"."$testo";
    
    
    
    
    // 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: Aziendasannicola";
    $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>";
    }

    la mail viene inviata correttamente, tranne per il fatto che l'allegato (di qualsiasi estensione) viene inviato come un file txt vuoto di nome noname......
    Cosa SBAGLIO????
    Devo attivare qualche opzione sul mio account o è solo un errore nel codice.
    vi ringrazio in anticipo della vostra disponibilità.

    PS il codice non è mio, L'ho trovato su internet

  19. #19
    Guest

    Predefinito

    non l'ho provato...ma ho fatto alcune correzioni:
    Codice PHP:
    <?php

    // Recupero il valore dei campi del form
    $nominativo=$_POST['nominativo'];
    $mail=$_POST['mail'];
    $oggetto=$_POST['oggetto'];
    $testo=$_POST['testo'];
    $telefono=$_POST['telefono'];
    $indirizzo=$_POST['indirizzo'];
    $citta=$_POST['citta'];
    $email_to="mia e-mail";
    $page_form="dove si trova contatti.html";

    $messaggio="Nome:"."$nominativo"."\n\n"."E-Mail:"."$mail"."\n\n"."Telefono:"."$telefono"."\n\n"."Indirizzo:"."$indirizzo"."\n\n"."Città:"."$citta"."\n\n"."Testo:"."\n\n"."$testo";




    // 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: \"Aziendasannicola\" <$email_to>\n";
    $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
    $mime_boundary ='--' . md5( uniqid(time()) );

    // Aggiungo le intestazioni necessarie per l'allegato
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"$mime_boundary\"";
    $headers.="Content-Transfer-Encoding: 8bit\n";

    // Definisco il tipo di messaggio (MIME/multi-part)
    $msg .= "This is a multi-part message in MIME format.\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: 8bit\n\n";
    $msg .= $messaggio . "\n";

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

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-type: application/octet-stream;\n name=\"$allegato_name\"\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment;\n";
    $msg .= " filename=\"$allegato_name\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= chr(13) . chr(10).$data . "\n\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>";
    }
    ?>

Regole di scrittura

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