Ciao ragazzi, buongiorno.
Stavolta mi sa che ho bisogno di un genio...
Io ci sto provando da stamattina alle 8... seguo la logica, ma non va...

Sono partito da questo tutorial per creare un mio codice perchè quello del tutorial genera degli alert in caso di errore, e poi una volta trovato il primo errore non caga gli altri.
Io invece vorrei semplicemente che una volta eseguita la verifica tornasse alla pagina form e nell'URL comparissero gli errori in GET (si dice così?)... erempio:
sito.da/?page=reg&errnome=1&errcognome... ecc

In questo modo potrei creare delle condizioni in modo da aggiungere o togliere delle classi in css (per far diventare il bordino rosso sul campo errato ad esempio), e aggiungere del testo se errnome=1 (ad esempio)

Posto il codice:

Codice PHP:
<?php
 
class NewUser
{
    public 
$conn;
 
        public function 
AddUser()
        {
            
$this->ErrorReport();
        }
 
        protected function 
DbConnect()
        {
            include 
"db_config.php";
 
            
$this->conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
            
mysql_select_db($db$this->conn);
        }
        
// controllo su NOME
        
protected function NomeCheck()
        {
            if(empty(
$_POST['nome']))
            {
                return 
TRUE;
            }
            else
            {
                return 
FALSE;
            }
        }
        
// controllo su COGNOME
        
protected function CognomeCheck()
        {
            if(empty(
$_POST['cognome']))
            {
                return 
TRUE;
            }
            else
            {
                return 
FALSE;
            }
        }
        
        
// controllo esistenza USERNAME
        
protected function UsernameExists()
        {
            
$this->DbConnect();
            
$sql "SELECT username FROM users WHERE username='$_POST[username]'";
            
$res mysql_query($sql$this->conn);
            if(
$row mysql_fetch_array($res))
            {
                
mysql_close($this->conn);
                return 
TRUE;
            }
            else
            {
                
mysql_close($this->conn);
                return 
FALSE;
            }
        }
        
        
// controllo USERNAME
        
protected function UsernameCheck()
        {
            if(
$_POST[username] == "")
            { 
                return 
TRUE;
            }
            elseif(
ereg("^[a-z0-9]{6,12}$",$_POST[username]))
            { 
                if(
$this->UsernameExists())
                {
                    return 
TRUE;
                }
                else{
                    return 
FALSE;
                }
            }
            else{
                return 
TRUE;
            }
        }
        
        
// controllo uguaglianza PASSWORD
        
protected function VerifyPassword()
        {
            if(
$_POST['password'] == $_POST['password2'])
            {
                return 
TRUE;
            }
            else
            {
                return 
FALSE;
            }
        }
        
// controllo PASSWORD
        
protected function PasswordCheck()
        {
            if(
$_POST[password] == "")
            { 
                return 
TRUE;
            }
            elseif(
ereg("^[a-zA-Z0-9]{6,12}$",$_POST[password]))
            { 
                if(!
$this->VerifyPassword())
                {
                    return 
TRUE;
                }
                else{
                    return 
FALSE;
                }
            }
            else{
                return 
TRUE;
            }
        }
        
        
// controllo esistenza EMAIL
        
protected function EmailExists()
        {
            
$this->DbConnect();
            
$sql "SELECT * FROM users WHERE email='$_POST[email]'";
 
            
$res mysql_query($sql$this->conn);
            if(
$row mysql_fetch_array($res))
            {
                
mysql_close($this->conn);
                return 
TRUE;
            }
            else
            {
                
mysql_close($this->conn);
                return 
FALSE;
            }
        }
        
        
        
// controllo EMAIL
        
protected function EmailCheck()
        {
            if(
$_POST[email] == "")
            { 
                return 
TRUE;
            }
            elseif(
ereg("^[a-zA-Z0-9][_\.a-zA-Z0-9-]+@([a-zA-Z0-9][0-9A-Za-z-]+\.)+([A-Za-z]{2,4})",$_POST[email]))
            { 
                if(
$this->EmailExists())
                {
                    return 
TRUE;
                }
                
                else{
                    return 
FALSE;
                }
            }
            else{
                return 
TRUE;
            }
        }
        


        public function 
ErrorResult()
        {
            if(
NomeCheck())
            {
                
$errnome="&errnome=1";
            }
            if(
CognomeCheck())
            {
                
$errcognome="&errcognome=1";
            }
            if(
UsernameCheck())
            {
                
$errusername="&errusername=1";
            }
            if(
PasswordCheck())
            {
                
$errpassword="&errpassword=1";
            }
            if(
EmailCheck())
            {
                
$erremail="&erremail=1";
            }
            
header("Location: ../?page=reg" $errnome $errcognome $errusername $errpassword $erremail);
            die;
        }
        
        
        protected function 
ErrorReport()
        {
            if(
$this->NomeCheck() OR $this->CognomeCheck() OR $this->UsernameCheck() OR $this->PasswordCheck() OR $this->EmailCheck())
            {
                
$this->ErrorResult;
            }
            
            
$this->InsertNewUser();
        }
        
        
 
//genera stringa casuale da inviare per email per confermare l'account
        
protected function GetKey()
        {
            
$car "aAbBcCdDeEfFgGhHiIlLjJkKmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
            
$dim 40;
            
srand((double)microtime()*1000000);
            
$string '' ;
 
                for(
$inc=0$inc<$dim$inc++)
                {
                    
$rand rand(0strlen($car)-1);
                    
$scar substr($car$rand1);
                    
$string $string $scar;
                }
 
            return 
$string;
        }



// prepara l'email con il link per confermare l'account (!!!!!!!!!!!!! ATTENZIONE: MODIFICA L'URL)
        
protected function SendUserMail($key)
        {
            
$content "Benvenuto $_POST[username],\r\n";
            
$content .= "per confermare la tua iscrizione devi cliccare sul seguente link:\r\n\r\n";
            
$content .= "http://www.pixter.it/starfactory/reg/verify_user.php?key=" $key;
 
            
mail($_POST['email'], "Iscrizione al sito..."$content"From: io<miomail@me.com>");
 
            return;
        }
 
 
 
 
// cripta la password, inserisce i dati nel database (con account ancora da attivare), prepara il link per conferma e invia la mail
        
protected function InsertNewUser()
        {
            
$password md5($_POST['password']);
            
$key_control $this->GetKey();
 
            
$sql "INSERT INTO users (nome,cognome,username,password,email,key_control) VALUES ('$_POST[nome]','$_POST[cognome]','$_POST[username]','$password','$_POST[email]','$key_control')";
 
            
$this->DbConnect();
 
            
mysql_query($sql,$this->conn);
 
            
mysql_close($this->conn);
 
            
$this->SendUserMail($key_control);
        }
 
 
 
 
// attivazione dell'account da link. Se il link è corretto passa ver a 1 e cancella key_control (la chiave casuale)
        
public function VerifyUser()
        {
            
$sql "SELECT id FROM users WHERE key_control='$_GET[key]'";
            
$this->DbConnect();
            
$res mysql_query($sql,$this->conn);
 
            if(
$row mysql_fetch_array($res))
            {
                
$query "UPDATE users SET ver=1,key_control='0' WHERE id='$row[id]'";
                
mysql_query($query,$this->conn);
                
mysql_close($this->conn);
                echo 
"Il tuo account è ora attivato!";
            }
            else
            {
                echo 
"Impossibile verificare l'account!";
            }
        }
        

}
?>
Ma non riesco a capire dov'è l'errore...
Alla fine dello script l'utente me lo registra comunque, anche se i campi sono tutti vuoti!
E' come se la funzione ErrorReport() non me la filasse proprio..
Dove sbaglio?
Grazie per l'aiuto!