ho creato una pagina contatti.htm la quale contiene il form per i contatti
Codice PHP:
<form name="form1"  action="aaa.php" method="post">
    <
font color="#BCF2ED">

    
Nome:

    <
input type="text" name="nome" size="34"></font>


    <
font color="#BCF2ED">Motivo:

</
font>
            <
select name="categorie">
                <
option value="commenti">Commenti al sito</option>
                <
option value="errori">Errori nel sito</option>
                <
option value="problemi">Problemi tecnici</option>
                <
option value="altro">Altro</option>
            </
select><font color="#BCF2ED">
</
font>


    <
font color="#BCF2ED">mail:

    <
input type="text" name="mail" size="44"></font>


    <
font color="#BCF2ED">Commenti:

    <
textarea cols="36" rows="5" name="commento"></textarea></font>


    <
font color="#BCF2ED">Codice di sicurezza
    

    [
img]captcha.php[/img]

    
inserisci qui il codice che vedi in figura:

<
input type='text' name='codiceverifica' size="25"></font>

    

    <
input type="submit" value="Invia">
    <
input type="reset" value="Cancella"></form
questo è il file dell'action aaa.php

Codice PHP:
<?php
//function per il redirect
function redirect($url$seconds FALSE)
{
    if (!
headers_sent() && $seconds == FALSE)
    {
        
header("Location: " $url);
    }
    else
    {
        if (
$seconds == FALSE)
        {
            
$seconds "0";
        }
        echo 
"<meta http-equiv=\"refresh\" content=\"$seconds;url=$url\">";
        }
        }
echo 
"</head><body>";
echo 
"<table class='nobord'><tr><td class='logo' colspan='2'><table class='nobord'><tr><td>[img]logo1.gif[/img]</td></tr></table></td></tr><tr><td class='top' width='100%'>";
require(
'php-captcha.inc.php');
$c=0;
//controllo codice captcha
if (PhpCaptcha::Validate($_POST['codiceverifica'])) { 
$c=0;
}
else{
$codice="- Il codice di sicurezza è nullo o non è corretto";
$c++;
}
$dati= array ("$_POST[nome]","$_POST[mail]","$_POST[commento]");
$risp= array("nome""mail","commento");
for(
$j=0$j count($dati); $j++){
//eliminao i possibili spazi vuoti o invi nei vari campi
$dati[$j]= trim($dati[$j]);
//controllo se i campi sono vuoti
if (empty($dati[$j])){
$campi[$j]="- Campo $risp[$j] vuoto
"
;
$c++;
}
}
//controllo se i campo mail non è vuoto e controllo nel caso sia pieno la validità della mail
if (empty($dati[1])){
$m=0;
}
else{
if(
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$dati[1])){
$m++;
}
else{
$posta"- Mail scritta non correttamente
"
;
$c++;
}
}
// messaggio da inviare nel caso di successo di controlli
if ($c==0){    
$messaggio="Questa email ti è stata inviata dal sito. L'utente $_POST[nome] (a cui puoi rispondere a: $_POST[mail], ti ha contattato per motivi di $_POST[categorie].\nTi ha scritto:\n$_POST[commento]";
    
mail("giuseppepiccinno@live.it""Segnalazione contatti"$messaggio);
echo 
"[b]<span style='font-size:12pt;color:white'>[b]Messaggio inviato!!![/b]</span>
<span style='color:#BCF2ED'>Tra pochi istanti verrai reindirizzato alla home del sito.[/b]

Se non vuoi aspettare oltre</span> [url='home.htm']clicca qui[/url]"
;
redirect("http://www.atuttascienza.altervista.org/home.htm",7);
}
else{
//messaggio da inviare in caso di insuccesso
echo "<span style='font-size:12pt;color:white'>[b]Attenzione!!! Invio non convalidato[/b]</span>

<span style='color:white'>Ci sono i seguenti errori:
</span>"
;
echo 
"<span style='color:#BCF2ED'>";
echo 
"$codice
"
;
for (
$x=0$x count($dati); $x++){
echo 
"$campi[$x]";
}
echo 
"$posta";
echo 
"</span>";
echo 
"
[url='javascript:history.back(-1);']Ritorna a contatti[/url]"
;
}
?>
sono alle prime armi con php...
prendendo codici preesistenti come function e php captcha e ampliando il codice con scritte mie...son riuscito a rendere operativa la pagina php...fa tutti i controlli perfettamente..e segnala tutti gli errori perfettamente...
quello che però da fastidio a me è che per esempio per controllare la validità della mail devo rifare il controllo se è vuota prima...
un chiarimento sulla funzione isset per favore:
la riga if(isset())
mi dice questo?
se il campo è pieno allora?
un'altra cosa il fatto di dover ripetere il ciclo per indicare quali sono i campi vuoti...
c'è un modo per semplificarlo?

un altra cosa:
la corretta scrittura se non sbaglio di questa cosa è questa:
$_POST['nome'] con gli apici...ma se metto cosi mi da errore mentre se li tolgo va bene...cio è normale?