ciao ho costruito un area membri ma ogni volta che mi registro esce "errore interno"
questo è il codice della pagina per la registrazione chiamato "registrati.php"



vedetre voi se avete bisogno c'è anche ilo file register.php

Codice PHP:
<html>
<head>
<style type="text/css">
<!--
.style1 {
    color: #FF0000;
    font-weight: bold;
}
-->
</style>
</head>
<body>
<?php
include_once("include/config.php");
include_once(
"include/reg.lib.php");

if(isset(
$_POST['action']) and $_POST['action'] == 'Invia'){
    
$ret reg_check_data($_POST);
    
$status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;
    
    switch(
$status){
        case 
REG_ERRORS:
            
?>
            <span class="style1">Sono stati rilevati i seguenti errori:</span>

            <?php
            
foreach($ret as $error)
                
printf("[b]%s[/b]: %s
"
$error[0], $error[1]);
            
?>
            
Premere "indietro" per modificare i dati
            <?php
        
break;
        case 
REG_FAILED:
            echo 
"Registrazione Fallita a causa di un errore interno.";
        break;
        case 
REG_SUCCESS:
            echo 
"Registrazione avvenuta con successo.

            Vi è stata inviata una email contente le istruzioni per confermare la registrazione."
;
        break;
    }
}
?>
</body>
</html>
qui c'è il codice di config.php

Codice PHP:
<?php

error_reporting
(E_ALL);

$_CONFIG['host'] = "localhost";
$_CONFIG['user'] = "root";
$_CONFIG['pass'] = "";
$_CONFIG['dbname'] = "articolo_autenticazione";

$_CONFIG['table_sessioni'] = "sessioni";
$_CONFIG['table_utenti'] = "utenti";

$_CONFIG['expire'] = 60;
$_CONFIG['regexpire'] = 24//in ore

$_CONFIG['check_table'] = array(
    
"username" => "check_username",
    
"password" => "check_global",
    
"name" => "check_global",
    
"surname" => "check_global",
    
"indirizzo" => "check_global",
    
"occupazione" => "check_global",
    
"mail" => "check_global"
);

function 
check_username($value){
    global 
$_CONFIG;
    
    
$value trim($value);
    if(
$value == "")
        return 
"Il campo non può essere lasciato vuoto";
    
$query mysql_query("
    SELECT id
    FROM "
.$_CONFIG['table_utenti']."
    WHERE username='"
.$value."'");
    if(
mysql_num_rows($query) != 0)
        return 
"Nome utente già utilizzato";
    
    return 
true;
}

function 
check_global($value){
    global 
$_CONFIG;
    
    
$value trim($value);
    if(
$value == "")
        return 
"Il campo non può essere lasciato vuoto";
    
    return 
true;
}


//--------------
define('AUTH_LOGGED'99);
define('AUTH_NOT_LOGGED'100);

define('AUTH_USE_COOKIE'101);
define('AUTH_USE_LINK'103);
define('AUTH_INVALID_PARAMS'104);
define('AUTH_LOGEDD_IN'105);
define('AUTH_FAILED'106);

define('REG_ERRORS'107);
define('REG_SUCCESS'108);
define('REG_FAILED'109);

$conn mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
mysql_select_db($_CONFIG['dbname']);
?>
qui quello di reg.lib.php

Codice PHP:
<?php
function reg_register($data){
    
//registro l'utente
    
global $_CONFIG;
    
    
$id reg_get_unique_id();
    
mysql_query("
    INSERT INTO "
.$_CONFIG['table_utenti']."
    (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
    VALUES
    ('"
.$data['name']."','".$data['surname']."','".$data['indirizzo']."',
    '"
.$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
    '1', '"
.time()."','".$id."')");
    
    
//Decommentate la riga seguente per testare lo script in locale
    //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
    
if(mysql_insert_id()){
        return 
reg_send_confirmation_mail($data['mail'], "test@localhost"$id);
    }else return 
REG_FAILED;
}

function 
reg_send_confirmation_mail($to$from$id){
    
//invio la mail di conferma
    
$msg "Per confermare l'avvenuta registrazione, clicckate il link seguente:
    [url]http://localhost/Articoli/autenticazione/1/scripts/confirm.php?id=[/url]"
.$id."
    "
;
    return (
mail($to"Conferma la registrazione"$msg"From: ".$from)) ? REG_SUCCESS REG_FAILED;
}

function 
reg_clean_expired(){
    global 
$_CONFIG;
    
    
$query mysql_query("
    DELETE FROM "
.$_CONFIG['table_utenti']."
    WHERE (regdate + "
.($_CONFIG['regexpire'] * 60 60).") <= ".time()." and temp='1'");
}

function 
reg_get_unique_id(){
    
//restituisce un ID univoco per gestire la registrazione
    
list($usec$sec) = explode(' 'microtime());
    
mt_srand((float) $sec + ((float) $usec 100000));
    return 
md5(uniqid(mt_rand(), true));
}

function 
reg_check_data(&$data){
    global 
$_CONFIG;
    
    
$errors = array();
    
    foreach(
$data as $field_name => $value){
        
$func $_CONFIG['check_table'][$field_name];
        if(!
is_null($func)){
            
$ret $func($value);
            if(
$ret !== true)
                
$errors[] = array($field_name$ret);
        }
    }
    
    return 
count($errors) > $errors true;
}

function 
reg_confirm($id){
    global 
$_CONFIG;
    
    
$query mysql_query("
    UPDATE "
.$_CONFIG['table_utenti']."
    SET temp='0'
    WHERE uid='"
.$id."'");
    
    return (
mysql_affected_rows () != 0) ? REG_SUCCESS REG_FAILED;
}
?>
ora che avete tutto (e se manca qualcosa ditemelo) vedetre perchè fà così
se volete testare di persona l'errore ecco qui provate a registrarvi