Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [PHP] controllo campi e funzioni

    ciao a tutti, premesso che non sono un fenomeno con le funzioni,
    ho abbozzato un paio di funzioni per un form che mi controllano un paio di cose
    l'utente compila il form
    se un campo è vuoto la funzione settato mi lascia il campo vuoto mentre la funzione error mi segnala con un messaggio l'errore campo vuoto.
    se il campo è pieno la funzione settato mi conserva il valore del campo ed error non agisce...
    ora questo va bene per controllare campi vuoti o no
    ho la necessità di controllare la sintassi della mail e il codice captha se sono corretti...

    come aggiungere questi due controlli in più
    Codice PHP:
        
        
        
        
    function settato($str){
        if(isset(
    $_POST['cancel'])){
        
    $str="";
        }
        if(isset(
    $str)){
        return(
    $str);
        }
        
        }
        
        function 
    error($str){
        if(isset(
    $_POST['submit'])){
                if (empty(
    $str)){            

                
    $error="<span style=\"color:red\">Campo vuoto</span>";
                }
        }
        return (
    $error);
        }
            
            
    $nomehtmlspecialchars(trim($_POST['nome']));
            
    $mailhtmlspecialchars(trim($_POST['mail']));
            
    $sitohtmlspecialchars(trim($_POST['sito']));
            
    $quesitohtmlspecialchars(trim($_POST['quesito']));
            
    $ahtmlspecialchars(trim($_POST['a']));
            
    $bhtmlspecialchars(trim($_POST['b']));
            
    $chtmlspecialchars(trim($_POST['c']));
            
    $dhtmlspecialchars(trim($_POST['d']));
            
    $esattahtmlspecialchars(trim($_POST['esatta']));
            
    $spiegazionehtmlspecialchars(trim($_POST['spiegazione']));
            
    $fontehtmlspecialchars(trim($_POST['fonte']));
            
    $commentohtmlspecialchars(trim($_POST['commento']));
            
            if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"$mail)){
            
    $error_mail="<span style=\"color:red\">Email scritta non correttamente</span>";
            }
            
            

            
            echo 
    "<form name=\"form1\"  action=\"collabora.php\" method=\"post\">
            [b]Campi obbligatori se non diversamente indicato[/b]

     
              <input type=\"hidden\" name=\"url\" value=\"
    $link\">
              

    Nome:
    <input type=\"text\" name=\"nome\" value=\""
    settato($nome) ."\" size=\"34\">".error($nome)."</p>
            

    Tua e - mail:
    <input type=\"text\" name=\"mail\" value=\""
    .settato($mail)."\" size=\"44\">".error($mail)."</p>
            

    Sito web [b](facoltativo)[/b]:
    <input type=\"text\" name=\"sito\" size=\"34\"></p>
            

    Categoria:

            <select name='categoria'>
            <option value = 'astronomia' >Astronomia
            <option value = 'biologia' >Biologia
            <option value = 'chimica' >Chimica
            <option value = 'fisica' >Fisica
            <option value = 'matematica' >Matematica
            <option value = 'scienze della terra' >Scienze della Terra
            </select></p>
            

    Quesito:
    <input type=\"text\" name=\"quesito\" value=\""
    .settato($quesito)."\" size=\"50\"> ".error($quesito)."</p>
            

    Risposta a:
    <input type=\"text\" name=\"a\" size=\"50\" value=\""
    .settato($a)."\"> ".error($a)."</p>
            

    Risposta b:
    <input type=\"text\" name=\"b\" size=\"50\" value=\""
    .settato($b)."\"> ".error($b)."</p>
            

    Risposta c:
    <input type=\"text\" name=\"c\" size=\"50\" value=\""
    .settato($c)."\"> ".error($c)."</p>
            

    Risposta d:
    <input type=\"text\" name=\"d\" size=\"50\" value=\""
    .settato($d)."\"> ".error($d)."</p>
            

    Risposta esatta [b](indica la lettera)[/b]:
    <input type=\"text\" name=\"esatta\" size=\"4\"></p>
            

    Spiegazione [b](facoltativo se la spiegazione è scontata. La spiegazione può essere però utile all'utente che svolge il quiz.)[/b]:

            <textarea cols=\"36\" rows=\"5\" name=\"spiegazione\"></textarea></p>
            

    Fonte [b](facoltativo ma indicarla è gradito poichè permetterebbe ad Atuttascienza di controllare l'attendibilità del quesito)[/b]:

            <textarea cols=\"36\" rows=\"5\" name=\"fonte\"></textarea></p>
            

    Commenti [b](facoltativo)[/b]:
    <textarea cols=\"36\" rows=\"3\" name=\"commento\"></textarea></p>
            

    Codice di sicurezza:

            <img src=\"http://www.atuttascienza.altervista.org/secur/captcha.php\" width=\"200\" height=\"60\" alt=\"Immagine captcha\">
    Inserisci il codice in figura:

            <input type=\"text\" name=\"codiceverifica\" size=\"25\"></p>
            <input type=\"hidden\" name=\"TipoContatto\" value=\"commenti\">
            <input type=\"submit\" name=\"submit\" value=\"Invia\">
            <input type=\"submit\" name=\"cancel\" value=\"Cancella\"></form>
              </div></div>
    "

    questo il codice che mi controlla captha e sintassi mail

    Codice PHP:

    session_start
    ();
        if(
    sha1($_POST['codiceverifica']) != $_SESSION['control']){
        
    // bla bla
        
    }
    if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"$mail)){
            
    $error_mail="<span style=\"color:red\">Email scritta non correttamente</span>";
            } 

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ho fatto controlli a parte per quei due
    però ora ho necessità che di contare i campi vuoti
    se nessuno è vuoto mi deve mandare in un altra pagina come fare?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.