crea due file:
1) funzioni_reg.php
2) registrazione.php

funzioni_reg.php
Codice PHP:
<?php
// le tre funzioni valida_user, valida_email, valida_password
// restituiscono una stringa
// ma se è tutto ok la stringa è vuota 
function valida_user($field
    { 
    if (
$field == ""
        { 
        return 
"Non è stato inserito nessun User
"

        } 
    else if (
strlen($field) < 5
        { 
        return 
"Lo User deve avere almeno 5 caratteri
"

        } 
    else if (
preg_match("/[^a-zA-Z0-9_-]/"$field)) 
        { 
        return 
"Per lo User sono ammesse solo lettere lettere, numeri, - e _
"

        } 
    return 
""// se tutto ok è vuoto
    


function 
valida_email($field
    { 
    if (
$field == ""
        { 
        return 
"Nessuna Email inserita
"

        }
    else if (!((
strpos($field".") > 0) && (strpos($field"@") > 0)) || preg_match("/[^a-zA-Z0-9.@_-]/"$field)) 
        { 
        return 
"L'indirizzo Email è invalido
"

        } 
    return 
""// se tutto ok è vuoto
    


function 
valida_password($field
    { 
    if (
$field == ""
        { 
        return 
"Nessuna Password inserita
"

        } 
    else if (
strlen($field) < 6
        { 
        return 
"La Password deve avere almeno 6 caratteri
"

        } 
    else if (!
preg_match("/[a-z]/"$field) || !preg_match("/[A-Z]/"$field) || !preg_match("/[0-9]/"$field)) 
        { 
        return 
"La Password deve contenere almeno 1: a-z, A-Z e 0-9
"

        } 
    return 
""// se tutto ok è vuoto
    
}

// questa funzione verifica se esiste già un utente con quel username
// ritorna un valore boleano true/ false
// true se esiste    
function isset_user($user)
    {
    
$controllo "select * from utenti where nome='" mysql_real_escape_string($user) . "'"
    
$result mysql_query($controllo) or die (mysql_error()); 
    
$contiamo_record_estratti mysql_num_rows($result);
    
// se ce ne sta almeno 1 => true... cioè esiste un utente con quel username
    
if($contiamo_record_estratti>=1)
        {
        return 
TRUE;
        }
    
// altrimenti => false... cioè non esiste nessun utente registrato con quell username
    
else
        {
        return 
FALSE;
        }
    }
    
// è uguale in tutto e per tutto alla precedente e segue la stessa logica    
function isset_email($email)
    {
    
// ATTENZIONE: controlla nella query campo email 
    
$controllo "select * from utenti where email='" mysql_real_escape_string($email) . "'"
    
$result mysql_query($controllo) or die (mysql_error()); 
    
$contiamo_record_estratti mysql_num_rows($result);
    
// se ce ne sta almeno 1 => true... cioè esiste un utente con quel email
    
if($contiamo_record_estratti>=1)
        {
        return 
TRUE;
        }
    
// altrimenti => false... cioè non esiste nessun utente registrato con quell email
    
else
        {
        return 
FALSE;
        }
    }
    
// mettiamo insieme tutte le precedenti funzioni
// creiamo un array $error vuoto
// validiamo tutti i campi e se qualche cosa va storto 
// inseriamo nell'array $error un elemento
// se va tutto ok alla fine $error rimarra vuoto

function validate_field_registration($username$email$pass)
    {
    
// eliminiamo gli spazi iniziali e finali di tutti i campi
    
$username trim($username);
    
$email trim($email);
    
$pass trim($pass);
    
    
// creiamo un array vuoto 
    
$error = array()
    
    
// eseguiamo tutte i controlli e se qualcosa va storto 
    // inseriamo il valore in $error
    
    // 1) username con sintassi esatta
    // se l'username non va bene valida_user restituisce una stringa non vuota!!
    // quindi se la stringa non è vuota
    
if(valida_user($username)!='')  
        {
        
// aggiungiamo all'array error il relativo errore
        
$error[] = valida_user($username);
        }
        
    
// 2) username già registrato
    // la funzione isset_user ritorna un valore boleano
    // true se esiste un utente con quel username, altrimenti false 
    // se true
    
if(isset_user($username)===TRUE)
        {
        
// aggiungiamo all'array $error il seguente errore
        
$error[] = 'Esiste già un utente registrato con questo username';
        }
        
    
// 3) email con sintassi esatta
    // logica isentica a quella vista al punto 1)
    
if(valida_email($email)!='')
        {
        
$error[] = valida_email($email);
        }
        
    
// 4) email già registrata
    // la logica è identica al quella del punto 2)
    
if(isset_email($email))
        {
        
$error[] = 'Esiste già un utente registrato con questa email';
        }
        
    
// 5) password con sintassi esatta
    // logica identica a quella dei punti 1) e 3)
    
if(valida_password($pass)!='')
        {
        
$error[] = valida_password($pass);
        }
        
    
// la funzione restituisce $error
    // se nessuno degli if è risultato verificato 
    // $error inizialmente vuoto è rimasto tale
    
return $error;
    }
    
?>
registrazione.php

Codice PHP:
<?php
// evitiamo l'accesso a coloro che già sono registrati
session_start();
if (isset(
$_SESSION['autorizzato'])) { 
    echo 
"

Effettua il logout</p>"

    echo 
'[url="index.php"]Home[/url] | '
    echo 
'[url="logout.php"]Logout[/url]'
    die; 
}

// ci si connette al db
include("config.php"); 
$link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
"
); 
$conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
"
);


// se il form è stato inviato
if(isset($_POST['registra']))
    {
    
// includiamo il file che contiene le funzioni
    
require_once('funzioni_reg.php');
    
    
// prima di procedere a qualsiasi operazione occorre validare i campi
    // applicheremo la funzione validate_field_registration
    // la quale ci restituirà un array contenente gli errori che riguardano i campi
    
$array_con_errori validate_field_registration($_POST['user'], $_POST['email'], $_POST['pass']);
    
    
// questo array così ottenuto sarà vuoto in caso di assenza di errori
    // quindi se vuoto possiamo procedere alla registrazione
    
if(empty($array_con_errori))
        {
        
// facciamo l'eascape delle stringhe
        
$user mysql_real_escape_string($_POST['user']); 
        
$email mysql_real_escape_string($_POST['email']); 
        
$pass mysql_real_escape_string($_POST['pass']); 
        
        
// prepariamo la query
        //ATTENZIONE: non conoscendo il nome dei campi me li sono inventati... 
        
$query "INSERT INTO utenti SET(nome, email, password) VALUES ('" $user "','" $email "','" $pass "')"
        
$result mysql_query($query) or die(mysql_error());
        
        
// creiamo un messaggio
        
$messaggio_success '<h1>Registrazione eseguita con successo!</h1>'
        
}
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <title>Registrazione</title> 
    </head> 
    <body> 
        [url="index.php"]Home[/url] 
<?php
// se esiste un messaggio di successo lo stampiamo
if(isset($messaggio_success))
    {
    echo 
$messaggio_success;
    }
// se invece esiste un array con gli errori
else if(isset($array_con_errori))
    {
    
// e questo non è vuoto
    
if(!empty($array_con_errori))
        {
        
// stampiamo gli errori ciclando l'array
        
echo 'Si sono verificati i seguente errori:';
        foreach(
$array_con_errori as $key => $value)
            {
            echo 
'-'.$value.'
'
;
            }
        }
    }
?>
        <form method="post" name="inserisci" action="#"> 
            <table> 
                <tr> 
                    <td>User:</td> 
                    <td><input type="text" name="user" /></td> 
                </tr> 
                <tr> 
                    <td>Email:</td> 
                    <td><input type="text" name="email" /></td> 
                </tr> 
                <tr> 
                    <td>Password:</td> 
                    <td><input type="password" name="pass" /></td> 
                </tr> 
                <tr> 
                    <td><input type="submit" name="registra" value="Registrati"/></td> 
                </tr> 
            </table> 
        </form>
    </body>
</html>
Contattami privatamente per il bonifico...