Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    controllo dei campi in un form

    ciao a tutti, volevo sapere se esiste un tutorial dove spiega, come fare il controllo dei campi in un form. Mi spiego, ho un form per l'invio della mail, con un campo nome, mail e messaggio. Vorrei che lo script mi controllasse, che in tutti i tre i campi sia stato inserito qualcosa, e poi inviare la mail. Spero che mi sono spiegata
    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non è un tutorial proprio semplice, ma questo metodo lo uso in tutti i miei progetti, ed è eccezionale.

    http://php.html.it/articoli/leggi/90...one-a-oggetti/

    Approfitto per fare i complimenti a Fabio Sutto.

    ciao

  3. #3
    Nella pagina dove invii i dati POST dal modulo che compila l'utente, puoi controllare se e' stato premuto il tasto di invio del modulo, in questo modo:

    ( supponendo che l'attributo "name" del pulsante Invia si chiami "submit_mail" )

    codice:
    if ((IsSet($_POST['submit_mail'])) && ($_POST['submit_mail'] == "Invia"))
    A questo punto controlli che l'utente abbia effettivamente inserito qualcosa in tutti i campi. In caso positivo invii la mail, altrimenti visualizzi un msg di errore.

    Quindi una roba del genere:

    codice:
    if ((IsSet($_POST['submit_mail'])) && ($_POST['submit_mail'] == "Invia")) {
    
        if (($_POST['nome'] != "") && ($_POST['email'] != "") && ($_POST['messaggio'] != 0)) {
    
            // ===============
            // Codice di invio della mail
            // ===============
    
          } // controllo nome, email, messaggio - esito positivo
    
        else {
    
            echo "Tutti i campi sono obbligatori!";
    
          } // controllo nome, email, messaggio - esito negativo
    
      } // submit_mail

  4. #4
    cioa ragazzi e grazie per le vostre risposte

    @ darsch, questo codice va bene anche per un form di registrazione? Come faccio a fare in modo che quando vado indietro, i campi che avevo gia' scritto, rimangono senza che devo riscriverli?

  5. #5
    Per un form di registrazione e' meglio che controlli i singoli campi con le espressioni regolari o comunque con delle regole rigide in modo da essere sicura che quello che scrive l'utente sia quello che ti aspetti e soprattutto sia depurato da caratteri che potrebbero causare danni.

    Per quanto riguarda l'altra domanda, ti consiglio di mettere il codice che controlla i campi all'inizio della stessa pagina in cui li fai compilare. In questo modo puoi usare un semplice controllo sul $_POST nel momento in cui scrivi il campo.

    Ti faccio un esempio, che e' molto meglio.

    Normalmente un campo di input ha questo aspetto:

    codice:
    <input id="nome_campo" name="nome_campo" type="text" size="50" maxlength="250" />
    Per fare in modo che venga riempito con del contenuto nel momento in cui appare su schermo, si usa l'attributo "value", in questo modo:

    codice:
    <input id="nome_campo" name="nome_campo" type="text" size="50" maxlength="250" value="testo che appare nel campo" />
    Quindi basta far fare a PHP un controllo sulla variabile $_POST['nome_campo'] per vedere se e' stato gia' compilato, e in caso positivo fargli scrivere l'attributo "value", cosi':

    codice:
    <input id="nome_campo" name="nome_campo" type="text" size="50" maxlength="250"<?php
    
    if (IsSet($_POST['nome_campo'])) echo " value=\"$_POST[nome_campo]\"";
    
    ?> />
    spero di essermi spiegato... ^_^

    per la validazione dei campi trovi tantissimi tutorial e informazioni su php.html.it , ti conviene studiarteli per bene perche' e' un argomento molto delicato

  6. #6
    ciao darsch e grazie per l'aiuto. una volta cliccato sul pulsante invia mail, mi porta alla pagina sendmail.php, che controlla se in tutti i campi e' stato inserito qualcosa, pero' mi esce questa scritta qui:
    codice:
    "" and $f_mail <> "" and $f_message <> "") { mail("$email", "$subject", "From: $f_name\nMail: $f_mail\nMessage:\n\n$f_message"); $msg = "Mail spedita, tra 5 secondi verrai reindirizzato all homepage"; } else { $msg = "All fields are required, push the back button to fill out the rest."; } ?>
    il codice e' questo:
    codice:
    <?
    include "config.php";
    header('refresh:5; url=/snils/index.php');
    if ($f_name <> "" and $f_mail <> "" and $f_message <> "") {
    mail("$email", "$subject", "From: $f_name\nMail: $f_mail\nMessage:\n\n$f_message");
    
    $msg = "Mail spedita, tra 5 secondi verrai reindirizzato all homepage";
    } else {
    $msg = "All fields are required, push the back button to fill out the rest.";
    }
    ?>
    
    
    </p>
    
    
    </p>
    
    
    </p>
    
    
    </p>
    
    
    </p>
    
    
    </p>
    <p align="center"><? echo $msg; ?></p>
    mi sembra tutto apposto il codice, o no?

  7. #7
    nessuno che mi puo' aiutare?

  8. #8
    cambia

    Codice PHP:
    if ($f_name <> "" and $f_mail <> "" and $f_message <> "") { 
    con:

    Codice PHP:
    if ($f_name != "" && $f_mail != "" && $f_message != "") { 

  9. #9
    Io ti consiglio di fare innanzi tutto così:

    Codice PHP:
    $var $_POST['variabile_passata_da_form'];

    $var trim($var); 
    // togli eventuali spazi prima e dopo la variabile
    // se chi compila la form preme solo il tasto [SPACE],
    // $var non sarebbe vuota, ma non c'è stringa

    // poi passi all'IF

    if (!$var == "" OR !empty($var)) {
       
    // $var contiene caratteri
      // procedo con lo script
    } else {
     echo 
    "Errore: Devi compilare i campi";

    Naturalmente, devi fare altri controlli (magari con le regexp) per validare poi il contenuto delle variabili passate da form.

    Spero di essere stato chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.