• User Newbie

    Ciao a tutti,
    sono nuova in questo forum ma lo seguo da un po' e lo trovo davvero interessante 😉
    Ho utilizzato questo form, ma non capisco come posso inserire degli input type="radio" per l'accettazione obbligatoria della legge sulla privacy.
    Qualcuno mi sa aiutare?
    Nel file modulo.html ho inserito questo codice:


    Acconsento:
    Sì <input type="radio" name="accetto" value="si" checked="checked" />
    No<input type="radio" name="accetto" value="no" />

    Cosa devo scrivere in invio.php perchè me lo prenda?

    Inoltre si può inserire un comando che verifichi che l'email inserita dall'utente sia reale?

    Grazie mille 🙂


  • User Attivo

    Dovresti postare del codice per capire come svolgi il tutto;è sempre una buona norma di programmazione presentare il codice in modo che altri
    utenti possano capire la logica ed eventualmente aiutarti nella stesura del
    codice oltre alla modularità stessa di come si trasmette il contenuto di
    un form sù di un'altra pagina.
    :fumato:


  • User Newbie

    Ciao,
    giustissimo!!! lo posto subito 🙂

    In modulo.html il codice è questo:

    [html]<form action="invio.php" method="post" id="modulo">
    <div class="label">
    <label>
    Indirizzo E-mail<b></b><br />
    <input name="mail" type="text" id="mail" class="input" />
    </label>
    </div>
    <div class="label">
    <label>
    Nome<b>
    </b><br />
    <input name="nome" type="text" id="nome" class="input" />
    </label>
    </div>
    <div class="label">
    <label>
    Messaggio<b>*</b><br />
    <textarea name="body" cols="30" rows="5" id="body" class="messaggio"></textarea>
    </label>
    </div>
    <div class="label">
    <div class="privacy">
    Tutte le informazioni pervenute tramite questo modulo non saranno diffuse né utilizzate con scopo diverso da quello per cui sono state inviate (in conformitá alle Legge 675 del 31/12/96: "Tutela della persona rispetto al trattamento dei dati personali").
    </div>
    Acconsento al trattamento dei miei dati personali per le finalità indicate nell'informativa.:<br />
    Sì<input type="radio" name="accetto" value="si" checked="checked" />
    No<input type="radio" name="accetto" value="no" />
    </div>
    <div class="label">
    <label>
    <input type="submit" name="submit" id="submit" value="Invia" /> <input type="reset" name="cancella" id="cancella" value="Ripristina" />
    </label>
    </div>
    </form>[/html]Mentre in invio.php il codice è questo:

    [php]<?php
    // indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineatelo
    if ((trim($_POST['nome']) != "") && (trim($_POST['body']) != "")) { //questo fa si che se i campi "nome" e "messaggio" sono vuoti la form non invia nessuna mail
    $to = " \n [email protected]"; //Indirizzo e-mail protetto dal bots spam , deve abilitare Javascript per vederlo
    $headers = "From: " . $_POST['mail'] . "\n";

    // soggetto della mail
    $subject = "Modulo proveniente da ...";

    // corpo messaggio
    $body = "Contenuto del modulo:\n\n";

    $body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente

    $body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n"; //oggetto del messaggio
    $body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio

    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "La mail è stata inviata con successo. Grazie per averci contattato";

    } else {// altrimenti
    echo "Deve compilare la form prima di inviare.";

    }

    ?>[/php]Grazie :smile5:


  • User Attivo

    Dunque,per il momento tralasciamo il lato sicurezza che ci torneremo
    quando abbiamo chiarito il tuo quesito,detto questo volevo sapere cosa è
    che non torna nel codice che hai postato.
    Volevo dirti che se fai la prova in locale devi avere un servizio attivo smtp
    altrimenti ricevi errore.
    :fumato:


  • User

    Ciao a tutti sono nuova del forum. Ho un problema con il form contatti:

    • vorrei che il messaggio di errore o di conferma avvenuto invio apparisse nella stessa pagina in cui si trova il modulo.

    Potete aiutarmi? Incollo il codice html e il php:

    [html]
    <form action="invio.php" method="post" id="modulo" name="contact">

                            <label for="name">* Nome e cognome:</label> <input name="name" type="text" class="input_field" id="name" maxlength="60" />
                           <div class="cleaner_h10"></div>
    
                            <label for="email">* Indirizzo e-mail:</label> <input name="email" type="text" class="input_field" id="email" maxlength="60" />
                           <div class="cleaner_h10"></div>
    
                            <label for="tel">* Telefono:</label>
                <input name="tel" type="text" class="input_field" id="tel" maxlength="60" />
                            <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 1</label> <input name="question1" type="text" class="input_field" id="question1" maxlength="60" />
                      <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 2</label> <input name="question2" type="text" class="input_field" id="question2" maxlength="60" />
                            <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 3/label> <input name="question3" type="text" class="input_field" id="question3" maxlength="60" />
                            <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 4</label> <input name="question4" type="text" class="input_field" id="question4" maxlength="60" />
                            <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 5</label> <input name="question5" type="text" class="input_field" id="question" maxlength="60" />
                            <div class="cleaner_h10"></div>
    
                            <label for="subject">Domanda 6</label> <input name="question6" type="text" class="input_field" id="question6" maxlength="60" />
                            <div class="cleaner_h10"></div>
                      <label for="text">Richiedi altre informazioni</label> <textarea id="text" name="text" rows="0" cols="0" class="required"></textarea>
                            <div class="cleaner_h10"></div>
    
                            <input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Invia" />
                   </form>
    

    [/html]

    [php]

    <?php
    if ((trim($_POST['name']) != "") && (trim($_POST['email']) != "")) { //questo fa si che se i campi "oggetto" e "messaggio" sono vuoti la form non invia nessuna mail
    $to = "info@email_it";
    $headers = "From: " . $_POST['email'] . "\r\n"; // mittente della mail
    $subject = "Contatto da www_sitoweb_com";

    // corpo messaggio
    $body = "Contenuto del modulo:\n\n\n";
    $body .= "Nome e Cognome: " . trim(stripslashes($_POST["name"])) . "\n\n"; //nome e cognome del mittente
    $body .= "E-mail: " . trim(stripslashes($_POST["email"])) . "\n\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente
    $body .= "Tel: " . trim(stripslashes($_POST["tel"])) . "\n\n"; //telefono del mittente
    $body .= "Domanda 1: " . trim(stripslashes($_POST["question1"])) . "\n\n"; //domanda 1
    $body .= "Domanda 2: " . trim(stripslashes($_POST["question2"])) . "\n\n"; //domanda 2
    $body .= "Domanda 3: " . trim(stripslashes($_POST["question3"])) . "\n\n"; // domanda3
    $body .= "Domanda 4: " . trim(stripslashes($_POST["question4"])) . "\n\n"; //domanda 4
    $body .= "Domanda 5: " . trim(stripslashes($_POST["question5"])) . "\n\n"; //domanda 5
    $body .= "Domanda 6: " . trim(stripslashes($_POST["question6"])) . "\n\n"; //domanda 6
    $body .= "Altre informazioni: " . trim(stripslashes($_POST["text"])) . "\n"; //richiesta altre informazioni

    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE..

    echo "La mail e' stata inviata con successo. Grazie per averci contattato";

    } else {// altrimenti
    echo "E' necessario compilare tutti i campi obbligatori (contrassegnati con l'asterisco).";

    }

    ?>
    [/php]

    Grazie a tutti coloro che vorranno aiutarmi, sto uscendo pazza! 😮


  • User Newbie

    @vnt54 said:

    Dunque,per il momento tralasciamo il lato sicurezza che ci torneremo
    quando abbiamo chiarito il tuo quesito,detto questo volevo sapere cosa è
    che non torna nel codice che hai postato.
    Volevo dirti che se fai la prova in locale devi avere un servizio attivo smtp
    altrimenti ricevi errore.
    :fumato:

    torno solo ora, sono stata dispersa per un po'...

    Dunque il form funziona correttamente, ma nell'email che arriva al destimatario non mi compare se il mittente ha accettato o meno la norma sulla privacy. Inoltre vorrei che l'accettazione della privacy fosse obbligatoria per poter spedire il modulo.
    In ultima mi piacerebbe inserire un piccolo controllo sull'autenticità dell'email inserita dal mittente. Cioè vorrei che il mittente fosse obbligato a scrivere un indirizzo email reale nel campo "E-mail", in modo da evitare un po' di spam o semplicemente avere un'email vera dove potergli casomai rispondere.

    Spero di essere riuscita a spiegarmi bene!

    Grazie 🙂


  • User Newbie

    ciao
    ho un problema con

    echo "La mail e' stata inviata con successo. Grazie per averci contattato";

    } else {// altrimenti
    echo "E' necessario compilare tutti i campi obbligatori (contrassegnati con l'asterisco).";

    }

    per ragioni di mia praticità
    ho incluso ( con include) la pagina modulo.php indexi.php e succede che la risposta alla mail sia su una pagina non formattata in dai css


  • User Newbie

    a me va a singhiozzo


  • User Newbie

    Ciao a tutti... io ho avuto un problema... Ho installato easyPHP e ho copiato i file nella cartella apposita.. riesco ad accedere al file modulo.html ma quando faccio invia mi esce questo errore

    Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\invio.php on line 28
    La mail è stata inviata con successo. Grazie per averci contattato

    Ho provato a controllare il file php.ini ma mi pare sia corretto, cosa posso fare?

    Grazie mille...


  • Consiglio Direttivo

    Ciao chronos87,
    prova ad inserire ad inizio script

    ini_set('SMTP','smtp.isp.ext');
    ```Dove smtp.isp.ext devi sostituirlo con l'indirizzo smtp del provider della mail (esempio: per alice.it è out.alice.it).
    Facci sapere. :ciauz:

  • User Newbie

    Sono riuscito a risolvere il mio problema inserendo nel file php.ini dove c'era scritto SMTP (al posto di 127.0.0.1) out.alice.it

    E' per caso un problema anche se in realtà io non uso alice?!?


  • Consiglio Direttivo

    In linea teorica potrebbe darti problemi, ma se ti funziona... 😄

    L'ideale sarebbe mettere l'SMTP dell'indirizzo mail che usi per inviare la mail, in teoria dato che arriva un messaggio da mail[@]dominio.ext ma con SMTP alice.it, potresti essere scambiato per SPAM. 😉


  • User

    Salve ragazzi sono nuovo di qui.
    Ho usato questo form e credo che funzioni tutto correttamente (almeno ho il messaggio di conferma di invio mail)
    la mia domanda è: dopo quanto tempo arriva la mail dal mio indirizzo di posta elettronica?
    grazie in anticipo a tutti 🙂


  • User

    @jumpy83 said:

    Salve ragazzi sono nuovo di qui.
    Ho usato questo form e credo che funzioni tutto correttamente (almeno ho il messaggio di conferma di invio mail)
    la mia domanda è: dopo quanto tempo arriva la mail dal mio indirizzo di posta elettronica?
    grazie in anticipo a tutti 🙂

    Funziona!!! non mi arrivava la mail perché c'era quella frase vicino all'indirizzo mail!


  • User Newbie

    Ciao a tutti,
    anche se questo post è piuttosto datato mi è stato molto utile ma avrei bisogno di un pò di aiuto 🙂
    Partendo dalla premessa che sono un super niubbo sto provando ad inserire il modulo per la richiesta mail nel mio sito.
    Ho leggermente modificato la prima parte del codice perchè non mi servivano le voci oggetto e campo per testo quindi ho lasciato solo la mail.
    Sul web il modulo appare benissimo ma quando si clicca il tasto invio il riquadro del modulo diventa bianco come una pagina web che nn va e soprattutto non parte nessuna mail.
    La prima domanda è: trattandosi di un sito costruito in Flash con WIX.COM io posso inserire a piacimento codici html e javascript ma il php lo riconoscerà? In sostanza io ho preso le due parti di codice, HTML e PHP, le ho modificate e le ho unite in un unico documento html. Ho fatto bene?
    Vi allego il codice che ho usato. Dove sta l'errore?
    HELP MEEEEEEE 🙂

    PS. nel codice ho tolto i www dei siti poichè non essendo utente premium non mi consente di farlo ma ovviamente nel web li ho messi 🙂 🙂

    ISCRIVITI ALLA NEWSLETTER
    <table>
    <form action="invio.php" method="post" id="modulo">
    <tr>
    <td>Indirizzo email</td>
    <td><label>
    <input name="mail" type="text" id="mail" />
    </label></td>
    </tr>
    <tr>
    <tr>
    <td><label></label>
    </td>
    <td><label>
    <input type="submit" name="submit" id="submit"
    </label></td>
    </tr>
    </table>
    </form>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ttp://w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="ttp://w.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>

    <body>
    <?php
    // indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineatelo

    $to = "w.yachting-experience.com";
    $headers = "From: " . $_POST['mail'] . "\n";
    // soggetto della mail
    $subject = "Modulo proveniente da w.yachting-experience.com";

    // corpo messaggio
    $body = "Contenuto del modulo:\n\n";

    $body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente

    // invio mail
    mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "La mail è stata inviata con successo. Grazie per averci contattato";

    } else {// altrimenti
    echo "Deve compilare la form prima di inviare.";

    }

    ?>
    </body>
    </html>


  • User Newbie

    Ciao a tutti e complimenti per il tutorial, l'ho trovato semplicemente perfetto e super funzionante 😄 sono riuscito a implementare tutto all'interno del mio sito.
    Però mi chiedevo una cosa: è possibile inserire il campo di scelta tra più opzioni? Per capirci meglio, quelli dove si può fare una scelta premendo nel pallino e farmi arrivare la scelta anche nel body della mail?

    Io sto provando a integrarlo cosi nel modulo.html:
    [HTML]<input type=radio name="giudizio" value="pessima">Pessima<br>
    <input type=radio name="giudizio" value="mediocre">Mediocre<br>[/HTML]

    e nel .php:
    [HTML]$body .= "Valutazione: " . trim(stripslashes($_POST["giudizio"])) . "\n"; [/HTML]

    Non funziona, perché quando compilo tutti i campi e provo a inviare mi esce la scritta "Deve compilare la form prima di inviare."
    Come se nel controllo del $body quel campo gli desse qualche problema..

    Suggerimenti o soluzioni? Grazie mille in anticipo 😄


  • User Attivo

    Salve a tutti e grazie. Finora funziona tutto.
    Vorrei sapere come si fa a sostituire la pagina "La mail è stata inviata con successo. Grazie per averci contattato" (invio.php) con un'altra pagina in html che ho preparato.
    Quest'altra pagina mi serve molto perché dovrò inserirvi il codice per le conversioni di AdWords.
    Grazie fin da ora!
    Hikari


  • ModSenior

    Ciao hikari,
    invece di:
    [php]
    echo "La mail è stata inviata con successo. Grazie per averci contattato";
    [/php]
    Puoi mettere:
    [php]
    header('Location: mia_pagina.html');
    exit;
    [/php]E farà il redirect ad una pagina, in cui puoi mettere ciò che vuoi.


  • User Attivo

    Ciao e grazie.
    Ho inserito il codice, ma il redirect va ancora alla pagina "invio.php", che resta in bianco.
    Ho provato a mettere, dopo "Location", sia una pagina della stessa directory, sia un'altra pagina con l'url completo con l'http, il www e il .html finale, ma niente...
    L'email, invece mi arriva correttamente nella casella destinatario.


  • ModSenior

    Puoi postare il codice che hai utilizzato e dà questo problema?