Questa funzione controlla che tutti i campi di un form soddisfino dei requisiti minimi prima di procedere alla registrazione dell'utente.
Codice PHP:
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) > 0 ? $errors : true;
}
Ecco l'array da cui vengomo prese le informazioni sui campi.
"check_global" ----> il campo non deve essere vuoto
"check_username ---> il campo non deve essere vuoto e non deve essere già presente un utente con quell'user.
"check_mail" ------> il campo non deve essere vuoto e non ci deve essere già una registrzione ad opera di quella mail.
Codice PHP:
$_CONFIG['check_table'] = array(
"username" => "check_username",
"password" => "check_global",
"name" => "check_global",
"surname" => "check_global",
"indirizzo" => "check_global",
"occupazione" => "check_global"
"mail" => "check_mail",
);
La registrazione va a buon fine, ma con
Codice PHP:
error_reporting(E_ALL);
appare un fastidioso notice:
Notice: Undefined index: action in /web/htdocs/www.miosito.it/home/utenti/include/reg.lib.php on line 51
L'errore si rifà a questa riga della funzione:
Codice PHP:
$func = $_CONFIG['check_table'][$field_name];
Come mi hanno giustamente fatto notare c'è un parametro dell'array che non è impostato, ma non sono in grado di sistemarlo.
Datemi una mano per favore.