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>";
        }