Visualizzazione risultati 1 fino 14 di 14

Discussione: Controllo dati form in php

  1. #1
    Guest

    Predefinito Controllo dati form in php

    Salve,
    sto impazzendo nel cercare di fare un controllo dei dati inseriti in un form ma non riesco a farlo funzionare.
    Questo il codice html nel file contatti.php:

    Codice HTML:
    <form id="scrivimi" method="POST" action="contact.php" onsubmit="return validateForm ()" >
    							<label class="nome"  name="nominativo">Nome</label>
    							<input class="casellanome" type="text" name="nome" required><br><br>
    							<label class="cognome"  name="surname">Cognome</label>
    							<input class="casellacognome" type="text" name="cognome" required><br><br>
    							<label class="mail"  name="mail">Email</label>
    							<input class="casellamail" type="text" name="email" required><br><br>
    							<label class="oggetto"  name="oggetto">Oggetto</label>
    							<input class="casellaoggetto" type="text" name="object" required><br><br><br>
    							<label class="msg" name="messaggo">Messaggio</label><br><br>
    							<textarea class="testomessaggio" name="object_text" rows='20' cols='50'> </textarea> <br><br>
    							<input class="invio" type="submit" id="button" value="Invia" name="invia">
    							<input class="restart" type="reset" value="Resetta">
    							</form>
    ecco il codice php che ho trovato, inserito nel file contact.php:
    Codice PHP:
    <?php

    if(!isset($_POST['invia']))die();

    $nome= $_POST['nome'];
    $cognome= $_POST['cognome'];
    $email= $_POST['email'];
    $oggetto= $_POST['object'];
    $msg= $_POST['object_text'];

    $fullmsg= "$nome $cognome <$email>\n\n Oggetto: $oggetto\n\n$msg";
    mail(
    "raccolta_email@yahoo.com",
    $oggetto,
    $fullmsg,
    "From: $email");


    $errore=false;
    #ho impostato la variabile a false in modo che quando c’e mi mostri torna indietro
    if ( ($nome == “”) || ($cognome == “”) || ($email == “”)|| ($oggetto == “”)||($meg == “”)){
    #se solo uno dei campi è vuoto
    $errore=true;
    echo
    <BR>Devi compilare tutti i campi<br>;
    }

    $pattern="^[^@ ]+@[^@ ]+\.[^@ \.]+$";
    if (!
    ereg($pattern,$email)) {
    echo
    "Questa <b>\"$email\"</b> non e un email valida";
    }else{
    echo
    "Questa e la tua email <b>$email</b><br>";
    }

    ?>
    quando provo a compilare una parte del form compare la seguente scritta:

    Parse error: syntax error, unexpected '>' in /membri/gaetanologatto/contact.php on line 24

  2. #2
    Guest

    Predefinito

    perchè nel copiare il codice dal sito in cui l'hai preso ti sei portato dietro le virgolette tipografiche “”
    cambiale con quelle normali "
    Ultima modifica di FormularioDiDrakensang : 02-11-2014 alle ore 11.05.49

  3. #3
    Guest

    Predefinito

    che occhio a me sembrano tutte uguali O_o

  4. #4
    Guest

    Predefinito

    mi compare sempre questo:

    Parse error: syntax error, unexpected '>' in /membri/gaetanologatto/contact.php on line 24

    alla linea 24 c'è:
    echo “<br>Devi compilare tutti i campi<br>”;

  5. #5
    Guest

    Predefinito

    e infatti le virgolette sono quelle sbagliate

    echo "<br>Devi compilare tutti i campi<br>"; // versione corretta

  6. #6
    Guest

    Predefinito

    devo cambiare occhiali...

  7. #7
    Guest

    Predefinito

    np metti mette semplicemente lo zoom a 125% e saltano agli occhi :)

  8. #8
    Guest

    Predefinito

    diciamo che va meglio, mi compare una nuova pagina con scritto gli errori, io però vorrei che non cambiasse pagina ma desse il messaggio sopra il form magari colorato di rosso. Se invece compilo tutti i campi mi dice sempre che non li ho compilati tutti... O_o

  9. #9
    Guest

    Predefinito

    se la gestione errori è in php, devi ricaricare la pagina

    se gli errori devono essere evidenziati nella stessa pagina p.es accanto al campo in oggetto
    come detto a suo tempo devi gestire onSubmit

    onsubmit="return validateForm ()" è un inizio ma devi implementare validateForm()

  10. #10
    Guest

    Predefinito

    hai un link che posso prendere da esempio?

  11. #11
    Guest

  12. #12
    Guest

    Predefinito

    Sto diventando matto.
    Ho creato un file validation.js con il seguente codice:

    function validateForm() {
    var n = document.forms["scrivimi"]["casellanome"].value;
    var c = document.forms["scrivimi"]["casellacognome"].value;
    var e = document.forms["scrivimi"]["casellamail"].value;
    var o = document.forms["scrivimi"]["casellaoggetto"].value;
    var t = document.forms["scrivimi"]["testomessaggio"].value;

    if (n == null || n == "") || (c == null || c == "") || (e == null || e == "")|| (o == null || o == "")||

    (t == null || t == ""){

    alert("Compilare tutti i campi");
    return false;

    var e = document.forms["myForm"]["casellamail"].value;
    var atpos = e.indexOf("@");
    var dotpos = e.lastIndexOf(".");
    if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=e.length) {
    alert("email non valida");
    }
    }

    tramite il seguente codice:
    <script type="text/javascript" src="validation.js"></script>
    l'ho inserito nel file contatti.php dove ho tutti i parametri del form:

    <form id="scrivimi" method="POST" action="contact.php" onsubmit="return validateForm ()" >
    <label class="nome" name="nominativo">Nome</label>
    <input class="casellanome" type="text" name="nome" required><br><br>
    <label class="cognome" name="surname">Cognome</label>
    <input class="casellacognome" type="text" name="cognome" required><br><br>
    <label class="mail" name="mail">Email</label>
    <input class="casellamail" type="text" name="email" required><br><br>
    <label class="oggetto" name="oggetto">Oggetto</label>
    <input class="casellaoggetto" type="text" name="object" required><br><br><br>
    <label class="msg" name="messaggo">Messaggio</label><br><br>
    <textarea class="testomessaggio" name="object_text" rows='20' cols='50'> </textarea> <br><br>
    <input class="invio" type="submit" id="button" value="Invia" name="invia">
    <input class="restart" type="reset" value="Resetta">
    </form>

    ho un file contact.php:
    <?php

    if(!isset($_POST['invia']))die();

    $nome= $_POST['nome'];
    $cognome= $_POST['cognome'];
    $email= $_POST['email'];
    $oggetto= $_POST['object'];
    $msg= $_POST['object_text'];
    $grazie="http://gaetanologatto.altervista.org/contatti.php";


    $fullmsg= "$nome $cognome <$email>\n\n Oggetto: $oggetto\n\n$msg";
    mail(
    "raccolta_email@yahoo.com",
    $oggetto,
    $fullmsg,
    "From: $email");


    ?>

    ho notato che non avevo incluso il file php dove ho i dati del form però quando provavo a inviare l'email la mandava lo stesso. Conviene comunque fare un' include vero?ma dove lo posiziono nella pagina?va bene ovunque?non ricordo.

    Il mio problema è che adesso non mi da' più alcun messaggio, quindi mi compare solo una pagina bianca sia se compilo tutto il form sia che non lo compilo...

    scusate se non ho messo i tag ma ho di nuovo problemi a rispondere, posso farlo solo con la risposta rapida.

  13. #13
    Guest

    Predefinito

    i controlli (qualcosa == null || qualcosa == "") su una proprieta' value possono ridursi a qualcosa.length<1

    nota nel codice javascript riferisci le classi css non le caselle - ERRORE
    il codice non può funzionare cosi'

    Codice PHP:
    function validateForm() {
    var
    n = document.forms["scrivimi"]["nome"].value;
    var
    c = document.forms["scrivimi"]["cognome"].value;
    var
    e = document.forms["scrivimi"]["mail"].value;
    var
    o = document.forms["scrivimi"]["oggetto"].value;
    var
    t = document.forms["scrivimi"]["messaggio"].value;

    if ( (
    n.length+c.length+e.length+o.length+t.length) <1 )
    {
    alert("Compilare tutti i campi");
    return
    false;
    }

    var
    atpos = e.indexOf("@");
    var
    dotpos = e.lastIndexOf(".");
    if (
    atpos< 1 || dotpos<atpos+2 || dotpos+2>=e.length) {
    alert("email non valida");
    return
    false;
    }

    }
    //validateForm()

    lo stesso per il codice php
    in cui chiedi $oggetto= $_POST['object']; ma la casella si chiama oggetto
    Ultima modifica di FormularioDiDrakensang : 02-11-2014 alle ore 18.23.21

  14. #14
    Guest

    Predefinito

    forse mi sto confondendo ma tu pigi i nomi della label???
    comunque non cambia nulla

Regole di scrittura

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