Visualizzazione risultati 1 fino 14 di 14

Discussione: aggiungere restrizione sui campi

  1. #1
    Guest

    Predefinito aggiungere restrizione sui campi

    Scusate ragazzi io sono nuovo di php, ma non credo di riuscire a capirci qualcosa anche in futuro :D ma il mio problema è che devo gestire un form, i quali campi : nome , cognome, cap ecc..ecc.. devono essere obbligatori, ora dunque io ho un form html
    http://adempius.altervista.org/iscrizione/form.html il quale poi mi invia un email tramite un altro file .php.. il problema è che voglio mettere delle restrizione sui campi tipo l'obbligazione a compilarli. vorrei capire meglio come funziona..

    Codice PHP:
    <?php
    //This is a very simple PHP script that outputs the name of each bit of information (that corresponds to the <code>name</code> attribute for that field) along with the value that was sent with it right in the browser window, and then sends it all to an email address (once you've added it to the script).

    if (empty($_POST)) {
    print
    "<p>No data was submitted.</p>";
    print
    "</body></html>";
    exit();
    }

    //Creates function that removes magic escaping, if it's been applied, from values and then removes extra newlines and returns to foil spammers. Thanks Larry Ullman!
    function clear_user_input($value) {
    if (
    get_magic_quotes_gpc()) $value=stripslashes($value);
    $value= str_replace( "\n", '', trim($value));
    $value= str_replace( "\r", '', $value);
    return
    $value;
    }


    if (
    $_POST['comments'] == 'da cambiare ') $_POST['da cambiare'] = '';

    //Create body of message by cleaning each field and then appending each name and value to it

    $body ="Il seguente utente dal sito frantoio richiede informazioni\n";


    foreach (
    $_POST as $key => $value) {
    $key = clear_user_input($key);
    $value = clear_user_input($value);
    if (
    $key=='extras') {

    if (
    is_array($_POST['extras']) ){
    $body .= "$key: ";
    $counter =1;
    foreach (
    $_POST['extras'] as $value) {
    //Add comma and space until last element
    if (sizeof($_POST['extras']) == $counter) {
    $body .= "$value\n";
    break;}
    else {
    $body .= "$value, ";
    $counter += 1;
    }
    }
    } else {
    $body .= "$key: $value\n";
    }
    } else {

    $body .= "$key: $value\n";
    }
    }

    extract($_POST);
    //removes newlines and returns from $email and $name so they can't smuggle extra email addresses for spammers
    $email = clear_user_input($email);
    $name = clear_user_input($name);




    //Creates intelligible subject line that also shows me where it came from
    $subject = 'informazioni';

    //Sends mail to me, with elements created above
    mail ('xxxxxxx@gmail.com,xxxxxxxxx@hotmail.it', $subject, $body, $from);


    ?>
    questo sopra e il file.php
    Ultima modifica di adempius : 27-02-2013 alle ore 18.44.41

  2. #2
    Guest

    Predefinito

    bastava leggere la discussione prima di questa dal titolo abbastanza esplicito "Campi obbligatori form" e nello specifico il messaggio di dreadnaut dove parla di required

  3. #3
    Guest

    Predefinito

    no non ci sto capendo cmq niente, :D io ho gia il form per l'invio del form

    quindi devo mettere solo
    Codice PHP:
    If (($nome=="") || ($cognome=="") || ($CodiceFiscale=="") || ($CAP=="")) {echo "Per favore, completa tutti i campi presenti nel modulo!";
    }
    else {echo
    "Congratulazioni! Verrai contattato al più presto";
    le variabile sopra devo coincidire ai tag name del form html?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,292

    Predefinito

    Nella discussione linkata sopra (che forse non hai letto) è spiegato anche quello. Rileggila con più calma

    http://forum.it.altervista.org/php-m...tori-form.html

  5. #5
    Guest

    Predefinito

    si ho capito quindi quella porzione di codice php la metto sempre nel file .php dove voglio (tra <?php ?>)
    EDIT:
    non sto capendo se, posso mettere questa porzione di codice php nella stessa pagina del form.html

    perchè ripeto io ho due file form.html e invio.php nel file invio.php ho inserito il codice che ho postato al primo post. ora credo che quindi per fare il controllo dei campi vuoti io debba implementare questo codice nello stesso file invio.php ..giusto?

    EDIT:

    allora, io non ce la fo + Allora il codice html, dove sta il form è questo
    http://adempius.altervista.org/iscrizione/form.html
    lo si vede tranquillamente con il sorgente pagina


    il codice php che sto mettendo invece è questo
    Codice PHP:
    <?php
    function isValidEmail($email){
    return
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }

    if (isset(
    $_POST['submit'])) {
    $Nome=$_POST['Nome'];
    $Cognome=$_POST['Cognome'];
    $Email=$_POST['Email'];
    $messaggio=$_POST['CodiceFiscale'];
    $privacy=$_POST['privacy'];
    if (!empty(
    $Nome)) {
    if (!empty(
    $Email)) {
    if (
    isValidEmail($Email)) {
    if (!empty(
    $messaggio)) {
    if (
    $privacy==1) {
    if(
    $_SESSION["captcha"]==$_POST["captcha"]) {
    $testo_del_messaggio="Nome: $Nome\n";
    $testo_del_messaggio.="Cognome: $Cognome\n";
    $testo_del_messaggio.="CodiceFiscale: $CodiceFiscale\n";
    $testo_del_messaggio.="Privacy: $privacy\n";
    $esito=mail("xxxxxx@gmail.com","Messaggio di $Nome ($Cognome)", $testo_del_messaggio);
    if (
    $esito) {
    echo
    "Esito: Messaggio inviato, ripsonderemo appena possibile!";
    } else {
    echo
    "Errore: Non &egrave; stato possibile inviare il messaggio!";
    }
    } else {
    echo
    "Errore: Il Codice di verifica non &egrave; corretto!";
    }
    } else {
    echo
    "Errore: Bisogna dare il consenso sulla Privacy!";
    }
    } else {
    echo
    "Errore: Manca il Messaggio!";
    }
    } else {
    echo
    "Errore: Formato Email non corretto!";
    }
    } else {
    echo
    "Errore: Manca un indirizzo Email!";
    }
    } else {
    echo
    "Errore: Manca il Nome!";
    }
    } else {
    echo
    "Errore: Modulo di invio non valido!";
    }

    ?>
    in realtà questo lo sto provando ora..solo che quando fate invio dice che manca l'email.

    si fatto l'ho messo, era questo che mancava ma mi da cmq lo stesso errore
    function isValidEmail($email){
    return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }


    ok ora mi esce questo errore


    che corrisponde a questa riga di codice
    if (isValidEmail($Email)) {


    Fatal error: Call to undefined function isValidEmail() in /membri/adempius/iscrizione/iscrizione.php on line 11
    Ultima modifica di adempius : 27-02-2013 alle ore 23.13.08

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,427

    Predefinito

    Ricontrolla tutti i campi: ad esempio $_POST['Email'] non lo vedo nel tuo script.
    E non fare post consecutivi: usa il tasto "Edita".

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ricontrolla tutti i campi: ad esempio $_POST['Email'] non lo vedo nel tuo script.
    E non fare post consecutivi: usa il tasto "Edita".

    Ciao!
    che vuoi dire con ricontrolla tutti i campi? cmq non riesco a venirne a capo..

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,427

    Predefinito

    Nel PHP non vedo l'utilizzo di "$_POST['Email']". Quindi senza quello è un po' difficile leggere l'email che hanno scritto nel form. Visto che manca "$_POST['Email']", controlla anche gli altri dati.

    Ciao!

  9. #9
    Guest

    Predefinito

    puo essere perchè non c'è il doctype nel file .php.. anche se l'ho messo dopo ma non funziona lo stesso


    niente non riesco a venirne a capo
    Ultima modifica di adempius : 28-02-2013 alle ore 18.12.00

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,427

    Predefinito

    Che centra il doctype? Io parlo dei parametri $_POST!

    Ciao!

  11. #11
    Guest

    Predefinito

    io penso che stiano bene, poi anche le variabili corrispondono al nome del che ho dato al form con tutte le maiuscole e minuscole

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,427

    Predefinito

    Non avevo visto che avevi editato il codice (e l'errore).
    L'errore è strano, perché la funzione sembra definita correttamente. Sicuro al 100% di aver effettuato quella modifica? (magari hai modificato soltanto il file sul tuo PC senza caricarlo... [può succedere])

    Ciao!

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non avevo visto che avevi editato il codice (e l'errore).
    L'errore è strano, perché la funzione sembra definita correttamente. Sicuro al 100% di aver effettuato quella modifica? (magari hai modificato soltanto il file sul tuo PC senza caricarlo... [può succedere])

    Ciao!
    si l'ho editato direttamente online il codice

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,427

    Predefinito

    ok. Da l'errore
    Fatal error: Call to undefined function isValidEmail() in /membri/adempius/iscrizione/iscrizione.php on line 11
    ?
    Perché a me quel codice sopra sembra corretto. È strano quell'errore.

    Ciao!

Regole di scrittura

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