Visualizzazione risultati 1 fino 16 di 16

Discussione: controllo campi form

  1. #1
    Guest

    Predefinito controllo campi form

    ciao ragazzi ho questo form è voglio effettuare un controllo sui dati in php ma non conosco il codice adatto alla situazione.
    spero che questo non sia un post già ripetuto. ecco il codice:
    Codice HTML:
    <form action="index.php?path=dati.php" method="post" name="form1" id="form1">
      <fieldset>
      <legend>Richiesta informazioni</legend>
      <p>Compila il modulo per inviarci qualunque richiesta. N.b. tutti i campi sono necessari </p>
      <p>Nome<br />
        <input name="nome" type="text" id="nome" />
      </p>
      <p align="left">
          <label for="label">Cognome</label>
          <br />
            <input name="cognome" type="text" id="cognome" />
      </p>
        <p align="left">
          <label for="label2">Email</label>
          <br />
          <input name="email" type="text" id="email" />
      </p>
        <p align="left"><label for="label3">Telefono</label>
          <br />
          <input name="telefono" type="text" id="telefono" />
      </p>
        <p align="left">
          <label for="textarea">Messaggio</label>
          <br />
          <textarea name="messaggio" cols="25" rows="10" id="messaggio"></textarea>
    </p>
        <p align="left">
      <label for="Submit">
          
            <input name="invia" type="submit" id="invia" value="Invia" />
          </label>
    </fieldset>
    </form>
    non è niente di speciale, solo per uno stupido esame universitario.
    grazie a quanti mi vorranno aiutare
    Ultima modifica di seneca : 09-07-2008 alle ore 22.35.19

  2. #2
    Guest

    Predefinito

    Primo: usa i tag appositi ;)

    Secondo: che controlli vuoi effettuare? validità dei dati? Presenza dei dati? Dicci tu ^_^

  3. #3
    Guest

    Predefinito

    beh vorrei che tutti i campi fossero obbligatori eccetto messaggio
    e che in telefono ci siano solo numeri e nella email sia presente il carattere
    @

    ma i controlli li faccio nella pagina htm postata o in quella php di controllo?
    non ci capisco più niente

  4. #4
    Guest

    Predefinito

    In quella php ;)

    Per controllare i campi se sono vuoti:

    1- prendi i dati via post
    Codice PHP:
    $var_nome = $_POST['nome'];
    2- controlli se è vuota
    Codice PHP:
    if($var_nome == ""){echo"manca il nome!";exit(); }
    E così per tutti i campi ;)

    Per l'email:
    1- prendi i dati via post
    Codice PHP:
    $var_email = $_POST['email'];
    2- controlli se è un'email
    Codice PHP:
    if(eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$var_email)){
    echo
    "email valida";}
    Per il telefono:
    1- prendi i dati via post
    Codice PHP:
    $var_numero = $_POST['telefono'];
    2- controlli se sono solo numeri(
    Codice PHP:
    if (is_int($var_numero)){
    echo
    "è un numero";
    }
    naturalmente se vuoi capire qualcosa di quello che ho scritto devi avere una conoscienza minima del php e credo che tu debba averla dato che hai scritto:
    non è niente di speciale, solo per uno stupido esame universitario.
    Quindi "in teoria" dovresti saperlo fare
    Ma noi non siamo qui per giudicarti ma per aiutarti, quindi se hai dubbi chiedi :)
    Ultima modifica di comunitavirtuali : 09-07-2008 alle ore 22.45.27

  5. #5
    Guest

    Predefinito

    wow ma lo sai che sei proprio un grande
    e questo te lo dico prima ancora di fare le opportune modifiche.

    cmq si ho una minima conoscenza di php

    i form che facevo prima avevano un bug, ovvero non mi arrivava nessun dato
    sulla mail, quindi ho deciso di rifare il tutto.

    è vero è un esame uni, ma non il mio, solo che sono un po' più pratico di tanti miei colleghi e quindi mi chiedono sempre degli "aiutini"

    cmq grazie ancora delle dritte le metto subito all'opera.


    EDIT:
    questo è il codice php prima delle modifiche:
    Codice PHP:
    <?php
    $nome
    =$_POST['nome'];
    $cognome=$_POST['cognome'];
    $email=$_POST['email'];
    $telefono=$_POST['telefono'];
    $messaggio=$_POST['messaggio'];
    $subject="Assistenza";

    $from="From: ".$email;
    $mailto="valedieci10@libero.it";

    if (empty(
    $nome))
    {
    echo
    "Spiacenti, campo Nome vuoto!";
    }
    if (empty(
    $cognome))
    {
    echo
    "Spiacenti, campo Cognome vuoto!";
    }
    if (empty(
    $email))
    {
    echo
    "Spiacenti, E-mail vuota!";
    }
    if (empty(
    $telefono))
    {
    echo
    "Spiacenti, Telefono vuoto!";
    }

    else
    {
    mail($mailto,$subject,$testo,$from);
    echo
    "E-mail inviata!!";
    }
    ?>
    quindi se ho capito bene: intanto cancello i controlli if che in questo caso non sono funzionali; poi inserisco i tuoi suggerimenti giusto?
    Ultima modifica di seneca : 09-07-2008 alle ore 23.29.15

  6. #6
    Guest

    Predefinito

    Evita i doppi post, usa il tasto Edita sotto il tuo post se nessuno ha risposto ;)

    Prova, poi dicci che problemi riscontri :)

  7. #7
    Guest

    Predefinito

    hai ragione scusa, sai la foga...

    cmq questo è il nuovo file e mi sa che ho sbagliato qualcosa

    Codice PHP:
    <body>
    <?php
    $var_nome
    =$_POST['nome'];
    $var_cognome=$_POST['cognome'];
    $var_email=$_POST['email'];
    $var_telefono=$_POST['telefono'];
    $var_messaggio=$_POST['messaggio'];
    $subject="Assistenza";

    $from="From: ".$var_email;
    $mailto="valedieci10@libero.it";

    if(
    $var_nome == "")
    {echo
    "Attenzione, manca il nome!";exit(); }

    if(
    $var_cognome == "")
    {echo
    "Attenzione, manca il cognome!";exit(); }

    if(
    $var_email == "")
    {echo
    "Attenzione, manca l'email!";exit(); }

    if(
    eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$var_email)){
    echo
    "";}

    if(
    $var_telefono == "")
    {echo
    "Attenzione, manca il telefono!";exit(); }

    if (
    is_int($var_numero)){
    echo
    "";
    }
    {
    mail($mailto,$subject,$var_messaggio,$from);
    echo
    "E-mail inviata!!";
    }
    ?>
    allampatu, utilizza i tag per il codice, è la terza volta che devo editare i tuoi messaggi; in questo modo migliori la lettura a chi ti aiuta
    Se non sai quali sono, basta che scrivi il messaggio in modalità "avanzata" e troverai i pulsanti.
    Ultima modifica di seneca : 09-07-2008 alle ore 23.32.43

  8. #8
    Guest

    Predefinito

    Dicci che errore ti esce ;)
    Codice PHP:
    if (is_int($var_numero)){
    echo
    "";
    }
    sostituisci $var_numero con $var_telefono

    Puoi chiamarli anche $nome, $email eccetera... il mio var_ era per far vedere che poteva essere una qualsiasi variabile xD
    Ma va bene anche così :P

    Edit:
    Inoltre alla fine mail($mailto,$subject,$var_messaggio,$from); perchè è preceduta da una aperta parentesi graffa? Nons serve =)
    Metti solamente la funziona mail senza racchiuderla tra graffe :)


    Se trovi altre difficoltà scrivi qui che poi domani risponderò o risponderanno con-forumisti ;-)
    Io scappo a nanna che non dormo da molto :D
    Ultima modifica di comunitavirtuali : 09-07-2008 alle ore 23.40.43

  9. #9
    Guest

    Predefinito

    intanto chiedo scusa a seneca, non volevo (caspita la punizione!)

    poi x il gentilissimo comunitavirtuali

    il fatto è che sia in mail che numero non inserisco @ e numeri eppure mi dice
    email inviata. strano no?!? cmq grazie x la disponibilità. ho trovato altri tipi
    di controllo php su internet, se funziona li posto volentieri così la critichiamo insieme.

    buona notte a tutti

  10. #10
    Guest

    Predefinito

    :D prima di andare a dormire

    naturalmente guardando su un manuale qualsiasi di php puoi utilizzare controlli quali If, elseif ed else per controllare tutti i dati ^_^

    if(dato == 1 AND dato2 == "numero"){non vale!} else {invio}
    (stupido esempio da mezzanotte @.@

  11. #11
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da allampatu Visualizza messaggio
    intanto chiedo scusa a seneca, non volevo (caspita la punizione!)
    Quella che tu chiami punizione deriva dal messaggio consecutivo che hai scritto, cosa vietata dal regolamento del forum che avresti dovuto leggere prima di postare
    Buonanotte!


    -- Aut Roma Aut Nihil!

  12. #12
    Guest

    Predefinito

    questa è la pagina di controllo del form.
    al posto di empty esiste un codice per rendere quel campo obbligatorio?
    e per la mail che contenga obblig "@"?
    e per il telefono solo numeri?
    inoltre nel ciclo if vorrei aggiungere il tag <br> per
    far comparire il messaggio di errore staccato l'uno dall'altro

    Codice PHP:
    <?php
    $nome
    =$_POST['nome'];
    $cognome=$_POST['cognome'];
    $email=$_POST['email'];
    $telefono=$_POST['telefono'];
    $messaggio=$_POST['messaggio'];
    $subject="Assistenza";

    $from="From: ".$email;
    $to="valedieci10@libero.it";




    if (empty(
    $nome))
    {
    echo
    "Spiacenti, campo Nome vuoto!";
    }
    if (empty(
    $cognome))
    {
    echo
    "Spiacenti, campo Cognome vuoto!";
    }
    if (empty(
    $email))
    {
    echo
    "Spiacenti, E-mail vuota!";
    }
    if (empty(
    $telefono))
    {
    echo
    "Spiacenti, Telefono vuoto!";
    }
    else {
    mail($mailto,$subject,$messaggio,$from);
    echo
    "E-mail inviata!!";
    }
    ?>
    Ultima modifica di allampatu : 10-07-2008 alle ore 17.10.29

  13. #13
    zukka non è connesso Utente giovane
    Data registrazione
    31-12-2004
    Messaggi
    34

    Predefinito

    così il controllo lo fai solo su telefono, devi fare qualcosa del genere
    Codice PHP:
    <?php
    $nome
    =$_POST['nome'];
    $cognome=$_POST['cognome'];
    $email=$_POST['email'];
    $telefono=$_POST['telefono'];
    $messaggio=$_POST['messaggio'];
    $subject="Assistenza";

    $from="From: ".$email;
    $to="valedieci10@libero.it";




    if (empty(
    $nome))
    {
    echo
    "Spiacenti, campo Nome vuoto!";
    $error = true;
    }
    if (empty(
    $cognome))
    {
    echo
    "Spiacenti, campo Cognome vuoto!";
    $error = true;
    }
    if(
    eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$email))
    {
    echo
    "Spiacenti, E-mail vuota o errata!";
    $error = true;
    }
    if (empty(
    $telefono))
    {
    echo
    "Spiacenti, Telefono vuoto!";
    $error = true;
    }
    if (!
    $error) {
    mail($mailto,$subject,$messaggio,$from);
    echo
    "E-mail inviata!!";
    }

    ?>
    così dovrebbe funzionare bene
    Ultima modifica di zukka : 10-07-2008 alle ore 22.17.38

  14. #14
    Guest

    Predefinito

    ciao zukka grazie mille x l'interessamento ma ahimè
    non è cambiato assolutamente niente. e ho fatto copia e incolla

    sto cominciando a pensare che non avrò mai un modulo funzionante

  15. #15
    zukka non è connesso Utente giovane
    Data registrazione
    31-12-2004
    Messaggi
    34

    Predefinito

    non capisco quale sia il problema, comunque c'era una piccola svista nel controllo della mail, eccola corretta
    Codice PHP:
    <?php
    $nome
    =$_POST['nome'];
    $cognome=$_POST['cognome'];
    $email=$_POST['email'];
    $telefono=$_POST['telefono'];
    $messaggio=$_POST['messaggio'];
    $subject="Assistenza";

    $from="From: ".$email;
    $to="valedieci10@libero.it";




    if (empty(
    $nome))
    {
    echo
    "Spiacenti, campo Nome vuoto!<br />";
    $error = true;
    }
    if (empty(
    $cognome))
    {
    echo
    "Spiacenti, campo Cognome vuoto!<br />";
    $error = true;
    }
    if(!
    eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$email))
    {
    echo
    "Spiacenti, E-mail vuota o errata!<br />";
    $error = true;
    }
    if (empty(
    $telefono))
    {
    echo
    "Spiacenti, Telefono vuoto!<br />";
    $error = true;
    }
    if (!
    $error) {
    mail($mailto,$subject,$messaggio,$from);
    echo
    "E-mail inviata!!<br />";
    }

    ?>
    Quale è il problema? dice "Email Inviata" ma non arriva?
    Non ti arrivano nome/cognome/telefono della persona ? (è normale questo script non lo prevede).
    Sei sicuro che il modulo sia impostato correttamente?
    method=post action=scriptphp.php
    e che i campi abbia il valore 'name' identico a quello che dichiari in $_POST['name'] ??


    se hai seguito tutti questi accorgimenti è IMPOSSIBILE che non funzioni , lo ho provato ora personalmente.
    Ultima modifica di zukka : 11-07-2008 alle ore 21.32.24

  16. #16
    Guest

    Predefinito

    grande zukka!

    - il primo problema è stato risolto ovvero quello che certifica che il campo mail contenga effettivamente almeno "a@b.c"

    - rimane il telefono che inserisco delle lettere e non avvisa dell'errore
    - e come hai immaginato, cmq non mi arriva nessuna mail con i dati, come mai?

    - il file che riceve i dati si chiama dati.php, è sbagliato chiamarlo così?
    - le variabili sono configurati bene nel file .htm

    - e soprattutto xkè a te funziona e a me no?

    grazie cmq del tuo aiuto

    --------
    p.s. posto il file .htm
    Codice HTML:
    <body>
    <form action="index.php?path=dati.php" method="post" name="form1" id="form1">
      <fieldset>
      <legend>Richiesta informazioni</legend>
      <p>Compila il modulo per inviarci qualunque richiesta. N.b.* = i campi sono necessari </p>
      <p>*Nome<br />
        <input name="nome" type="text"  />
      </p>
      <p align="left">
          <label for="label">*Cognome</label>
          <br />
            <input name="cognome" type="text"  required="1"/>
      </p>
        <p align="left">
          <label for="label2">*Email</label>
          <br />
          <input name="email" type="text"  />
      </p>
        <p align="left">
          <label for="label3">*Telefono</label>
          <br />
          <input name="telefono" type="text"  />
      </p>
        <p align="left">
          <label for="textarea">Messaggio</label>
          <br />
          <textarea name="messaggio" cols="25" rows="10" ></textarea>
    </p>
        <p align="left">
      <label for="Submit">
          
            <input name="invia" type="submit" id="invia" value="Invia" />
          </label>
    </fieldset>
    </form>
    </body>
    Ultima modifica di allampatu : 12-07-2008 alle ore 11.50.05

Regole di scrittura

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