Visualizzazione risultati 1 fino 23 di 23

Discussione: Form Html per Fanclub

  1. #1
    Guest

    Predefinito Form Html per Fanclub

    Ho un piccolo problema..
    Ho un sito web...devo fare una cosa molto semplice ma non so come realizzarlo:

    In una delle mie pagine web che sono in HTML vorrei inserire un form con le seguenti Voci:

    Nome*:
    Cognome*:
    Via:
    Citta*:
    Cap*:
    Provincia*:
    Professione:
    Titolo di Studio:
    Telefono*:
    E-mail*:
    Commenti:

    Questo form dovrà essere spedito sia a Me che alla persona che lo compila..

    Mi potete dare una mano?

  2. #2
    Guest

    Predefinito

    Codice:
    <?php
    $nome = $_POST["nome"];
    $cognome = $_POST["cognome"];
    $via = $_POST["via"];
    $citta = $_POST["citta"];
    $cap = $_POST["cap"];
    $provincia = $_POST["provincia"];
    $professione = $_POST["professione"];
    $titolo = $_POST["titolo"];
    $telefono = $_POST["telefono"];
    $mail = $_POST["mail"];
    $commenti = $_POST["commenti"];
    
    $destinatari = "$mail, ";
    $destinatari .= "tuoindirizzo@tuoprovider.ext";
    
    $oggetto = "a tua scelta";
    
    $messaggio = "$nome\n$cognome\n$via\n$citta\n$provincia\n$professione\n$titolo\n$telefono\n$commenti";
    $mail = mail($destinatari, $oggetto, $messaggio, "From: $mail");
    
    if ($mail == 1) {
    echo "Email inviata con successo!";
    } else {
    echo "Non &egrave; stato possibile inviare la mail";
    }
    ?>
    Dovrebbe funzionare ;)
    Ovviamente devi impostare i parametri nell'HTML in questa maniera:

    Codice:
    <form action="mail.php" method="post">
    Nome*: <input type="text" name="nome" /><br />
    Cognome*: <input type="text" name="cognome" /><br />
    </form>
    e così via ;)

    (ovviamente la pagina dove scriverai quel papiello contenuto tra i tag <?php e ?> andra salvato come .php... nello specifico, l'ho chiamato mail.php... te lo dico perché non so se lo sai ;))
    Ultima modifica di Heartless482 : 05-02-2006 alle ore 13.05.16

  3. #3
    Guest

    Predefinito

    Non mi spunta il pulsante invia...

  4. #4
    Guest

    Predefinito

    Perché io sono un cretino e non te l'ho detto! XD

    in fondo agli ultimi input, scrivi:
    Codice:
    <input type="submit" value="Invia" />&nbsp;&nbsp;&nbsp;<input type="reset" value="Azzera" />
    va scritto appena prima di </form>

  5. #5
    Guest

    Predefinito

    Non mi funziona..

    http://www.kristinkreuk.it/kristin/form.html

    vedi in cosa sbaglio...:(

  6. #6
    Guest

    Predefinito

    Hai scritto "congnome" anziché "cognome".
    Poi il submit e il reset vanno ancora all'interno del form.
    <form>
    <input nome>
    <input cognome>
    <input submit> <input reset>
    </form>

  7. #7
    Guest

    Predefinito

    unica cosa...che non funge è la professione...

  8. #8
    Guest

    Predefinito

    Scusa, hai ragione, ho sbagliato io a scrivere il codice PHP.
    Ricontrolla il codice, perché ho messo uno spazio all'interno della parola professione, mentre non devono essercene ;)
    Poi ti do un consiglio per l'area dei commenti. Ti conviene usare una <textarea>.
    Codice:
    <textarea cols="40" rows="3" name="commenti"></textarea>
    Per esempio questa non è molto alta ma è sufficientemente larga da visualizzare abbastanza testo. Fai qualche prova anche in locale per renderti conto di quale sia la soluzione migliore ;)

  9. #9
    Chandler non è connesso Utente giovane
    Data registrazione
    02-11-2004
    Messaggi
    91

    Predefinito

    Heartless482 sei un grande! Volevo chiederti una cosa...e per fare la verifica dei campi obbligatori? Cioè appena vengono inviati i dati lo script deve prima fare una verifica per vedere se tutti i campi obbligatori sono stati compilati...altrimenti non li invia. Come faccio a far fare questa verifica al form che ci hai sopra scritto?

  10. #10
    Guest

    Predefinito

    Grazie per i complimenti ;)

    Per fare il controllo io ho inserito un alert in JavaScript.
    Per esempio, si fa il controllo sul mittente che deve essere scritto in una data maniera:
    Codice:
    if(ereg("^(.+)@(.+)\\.(.+)$",$mittente)) { } else {
    echo "<script type=\"text/javascript\">alert('Si &egrave; verificato un errore:\ndevi specificare un mittente corretto.');history.go(-1)</script>";
    exit;
    }
    Lo stesso vale per il destinatario (se è unico, perché impostato in configurazione, allora non ce n'è bisogno. Per l'oggetto, invece, o il messaggio, si può usare questa sintassi:
    Codice:
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$oggetto)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo oggetto &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    Si può usare anche per il campo del messaggio adattando le variabili ;)
    Ed è anche possibile aggiungere un tag <noscript></noscript> per chi non ha attivato il JavaScript. Per esempio si potrebbe dare un link per la pagina dalla quale si proveniva (che è unica) semplicemente mettendo un <a href="paginadellamail.html">Torna indietro</a>, anche se non ha lo stesso effetto del JavaScript.
    Ovviamente si può tutto adattare ;)
    Ciao!

  11. #11
    Chandler non è connesso Utente giovane
    Data registrazione
    02-11-2004
    Messaggi
    91

    Predefinito

    Perfetto... e per assicurarmi che i campi obbligatori (quelli con l'asterisco *) siano stati compilati? Come faccio?

  12. #12
    Guest

    Predefinito

    Proprio come ho scritto sopra. Basta questo controllo JavaScript per poter controllare che i campi obbligatori siano stati compilati

  13. #13
    Guest

    Predefinito

    Heartless mi spieghi una cosa.. lo script:

    Codice:
    if(ereg("^(.+)@(.+)\\.(.+)$",$mittente)) { } else {
    echo "<script type=\"text/javascript\">alert('Si &egrave; verificato un errore:\ndevi specificare un mittente corretto.');history.go(-1)</script>";
    exit;
    }
    mis pieghi di preciso dove metterlo? è uno script HTML o PHP?

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

    Predefinito

    E' uno script PHP e lo devi mettere nella pagina che riceve i dati dal form (quella specificata nell'action del tag form).
    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

  15. #15
    Guest

    Predefinito

    Va posizionato appena dopo l'impostazione della variabile mittente.
    Quindi più o meno così:
    Codice:
    $mittente = $_POST["mittente"];
    if (ereg(eccetera));

  16. #16
    Chandler non è connesso Utente giovane
    Data registrazione
    02-11-2004
    Messaggi
    91

    Predefinito

    Si ma quello citato sopra vale solo per il mittente giusto (che nel caso del form sarebbe $mail)?
    Quindi nel caso in cui i campi obbligatori fossero:
    Nome*:
    Cognome*:
    Citta*:
    Cap*:
    Provincia*:
    Telefono*:
    E-mail*:
    dovrò mettere :
    <?php
    $nome = $_POST["nome"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$nome)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Nome &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $cognome = $_POST["cognome"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$cognome)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Cognome &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $via = $_POST["via"];
    $citta = $_POST["citta"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$citta)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Città &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $cap = $_POST["cap"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$cap)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Cap &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $provincia = $_POST["provincia"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$provincia)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Provincia &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $professione = $_POST["professione"];
    $titolo = $_POST["titolo"];
    $telefono = $_POST["telefono"];
    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$telefono)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo Telefono &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }
    $mail = $_POST["mail"];
    if(ereg("^(.+)@(.+)\\.(.+)$",$mail)) { } else {
    echo "<script type=\"text/javascript\">alert('Si &egrave; verificato un errore:\ndevi specificare una mail corretta.');history.go(-1)</script>";
    exit;
    }
    $commenti = $_POST["commenti"];



    $destinatari = "$mail, ";
    $destinatari .= "tuoindirizzo@tuoprovider.ext";

    $oggetto = "a tua scelta";

    $messaggio = "$nome\n$cognome\n$via\n$citta\n$provincia\n$profe s sione\n$titolo\n$telefono\n$commenti";
    $mail = mail($destinatari, $oggetto, $messaggio, "From: $mail");

    if ($mail == 1) {
    echo "Email inviata con successo!";
    } else {
    echo "Non &egrave; stato possibile inviare la mail";
    }
    ?>

    Giusto così o c'è un modo + semplice?

  17. #17
    Guest

    Predefinito

    Non ho capito esattamente cosa intendi.
    Comunque questo codice implica che i campi segnati con l'asterisco vadano compilati esattamente.
    Dimenticavo una cosa, se il mailer non dovesse funzionare, aggiungi queste righe:
    Codice:
    if (!isset($_POST["nome"])) { $_POST["nome"] = "");
    puoi scriverlo prima di
    Codice:
    $nome = $_POST["nome"];
    E fai lo stesso con tutte le altre variabili non sto a scrivertele tutte perché ci metterei una serata intera! XD
    Comunque non c'è problema più semplice o più difficile, perché tanto non devi modificarlo ;)
    L'unica cosa, ovviamente devi sostituire "tuoindirizzo@tuoprovider.ext" con la tua mail esatta e il contenuto di $oggetto con l'oggetto che vuoi venga visualizzato alla ricezione della mail. Che so, "Hai inserito i seguenti dati", oppure puoi anche fare una finezza: "Richiesta di iscrizione al club: $nome $cognome" o anche solo $nome
    E così dovresti risolvere tutto
    Se ci sono altri problemi, io continuerò a darti altri suggerimenti
    Ciao!

  18. #18
    Chandler non è connesso Utente giovane
    Data registrazione
    02-11-2004
    Messaggi
    91

    Predefinito

    Forse mi sono confuso...il codice che implica che i campi segnati con l'asterisco vadano compilati esattamente è questo??

    if(ereg("[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",$oggetto)) { } else {
    echo "<script type=\"text/javascript\">alert('Il campo oggetto &egrave; obbligatorio.');history.go(-1)</script>";
    exit;
    }

    e basta metterlo solo una volta? Anche perchè questo mi sembra valga solo per il parametro $oggetto della mail...
    Quindi ricapitolando l'unica cosa che volevo sapere era il codice unico che permette di verificare che i campi obbligatori con l'asterisco siano compilati. Spero dia chiaro...

  19. #19
    Guest

    Predefinito

    No, una cosa unica credo non sia fattibile. Per di più non ti conviene, perché tenendo un controllo separato per ogni campo obbligatorio si può leggere più facilmente quale potrebbe essere, dopo un errore, un campo non compilato.
    Quel codice che hai postato è valido solo per la variabile oggetto.
    Quello che hai scritto qui, invece, è perfetto.
    Ti ripeto, però, che se il mailer non dovesse funzionare, dovresti aggiungere quella funzione isset.
    Nel caso non funzioni proprio niente, ripasso tra un'oretta e ti posto il codice completo Poi dovrebbe andare (la speranza è quella :D).

  20. #20
    Guest

    Predefinito

    Ciao, mi intrufolo nella discussione.
    Nel primo codice php che scrivi ci sono le seguenti righe:

    if ($mail == 1) {
    echo "Email inviata con successo!";
    } else {
    echo "Non &egrave; stato possibile inviare la mail";
    }
    ?>

    Se il visitatore non inserisce la email, dovrebbe apparire "Non è stato possibile inviare la mail", giusto?
    Ma a me non funziona e mi appare sempre il messaggio che la mail è stata inviata con successo. Hai un'idea del perchè?
    Ti ringrazio .. purtroppo php non è il mio forte :-s

  21. #21
    Chandler non è connesso Utente giovane
    Data registrazione
    02-11-2004
    Messaggi
    91

    Predefinito

    Veramente...indipendentemente dal fatto che il visitatore inserisca o no la propria mail (a meno che non diventi un campo obbligatorio) la mail verrà inviata ugualmente...il problema si pone se la mail inserita su mail.php fosse errata...a quel punto dovrebbe dire "non è stato possibile inviare la mail". Non ho fatto abbastanza prove...però credo sia così...

  22. #22
    Guest

    Predefinito

    Sì. è proprio così!
    Oddio come mi sento idiota !!!"""***
    Grazie

  23. #23
    Guest

    Predefinito

    Ho provaro a risolvere in questa maniera, vedete un po' se gira ;)

    Codice:
    <?php
    if (!isset($_POST["nome"])) {$_POST["nome"] = "";}
    if (!isset($_POST["cognome"])) {$_POST["cognome"] = "";}
    if (!isset($_POST["via"])) {$_POST["via"] = "";}
    if (!isset($_POST["citta"])) {$_POST["citta"] = "";}
    if (!isset($_POST["cap"])) {$_POST["cap"] = "";}
    if (!isset($_POST["provincia"])) {$_POST["provincia"] = "";}
    if (!isset($_POST["professione"])) {$_POST["professione"] = "";}
    if (!isset($_POST["titolo"])) {$_POST["titolo"] = "";}
    if (!isset($_POST["telefono"])) {$_POST["telefono"] = "";}
    if (!isset($_POST["mail"])) {$_POST["mail"] = "";}
    if (!isset($_POST["commenti"])) {$_POST["commenti"] = "";}
    
    $nome = $_POST["nome"];
    $cognome = $_POST["cognome"];
    $via = $_POST["via"];
    $citta = $_POST["citta"];
    $cap = $_POST["cap"];
    $provincia = $_POST["provincia"];
    $professione = $_POST["professione"];
    $titolo = $_POST["titolo"];
    $telefono = $_POST["telefono"];
    $mail = $_POST["mail"];
    $commenti = $_POST["commenti"];
    
    $destinatari = "$mail, ";
    $destinatari .= "tuoindirizzo@tuoprovider.ext";
    
    $oggetto = "a tua scelta";
    
    if ($nome = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica il nome!\");history.go(-1)</script>"
    } else {}
    if ($cognome = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica il cognome!\");history.go(-1)</script>";
    }
    if ($via = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica l'indirizzo!\");history.go(-1)</script>";
    }
    if ($citta = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica la città!\");history.go(-1)</script>";
    }
    if ($cap = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica il CAP!\");history.go(-1)</script>";
    }
    if ($provincia = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica la provincia!\");history.go(-1)</script>";
    }
    if ($professione = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica la tua professione!\");history.go(-1)</script>";
    }
    if ($titolo = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica il tuo titolo!\");history.go(-1)</script>";
    }
    if ($telefono = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica il numero di telefono!\");history.go(-1)</script>";
    }
    if ($mail = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica l'indirizzo mail!\");history.go(-1)</script>";
    }
    if ($commenti = NULL) {
      echo "<script type=\"text/javascript\" language=\"javascript\">alert(\"Specifica un commento!\");history.go(-1)</script>";
    }
    
    $messaggio = "$nome\n$cognome\n$via\n$citta\n$provincia\n$professione\n$titolo\n$telefono\n$commenti";
    @$mail = mail($destinatari, $oggetto, $messaggio, "From: $mail");
    
    if ($mail == 1) {
      echo "Mail inviata correttamente\n<a href=\"http://www.kristinkreuk.it\">Torna al sito</a>";
    } else {
      echo "La mail non &egrave; stata inviata in seguito ad un errore";
    }
    ?>

Regole di scrittura

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