Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178

    Notice su procedura di registrazione

    Mi registro ad un sito tramite form, compilo i campi e quando invio la query ecco l'errore:

    Notice: Undefined index: action in /web/htdocs/www.miosito.it/home/utenti/include/reg.lib.php on line 51
    Registrazione avvenuta con successo.
    Vi è stata inviata una email contente le istruzioni per confermare la registrazione.


    Ecco la funzione della libreria incriminata (La freccia per segnalare la riga a cui si rifà l'errore)

    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) > $errors true;

    L'errore si è verificato dopo che ho aggiunto a questo array, il controllo della validità del campo mail:

    Codice PHP:
    $_CONFIG['check_table'] = array(
        
    "username" => "check_username",
            
    "mail" => "check_mail"
        
    "password" => "check_global",
        
    "name" => "check_global",
        
    "surname" => "check_global",
        
    "indirizzo" => "check_global",
        
    "occupazione" => "check_global"
    ); 
    La registrazione va a buon fine, ma senza quel notice andrebbe ancora meglio.

  2. #2
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Quando richiami reg_check_data($data), ad occhio c'è un $data['action'], che non essendo presente nell'array $_CONFIG['check_table'] ti da errore quando cerchi di accedervi.

    Ti dovrebbe bastare un isset() o array_key_exists() per arginare il problema
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Ma è presente, e non capisco come mai dia un errore del genere.

    La funzione richiamata è peraltro indentica alla check_username.

    Codice PHP:
    function check_mail($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 mail='"
    .$value."'");
        if(
    mysql_num_rows($query) != 0)
            return 
    "email già registrata";
          
    return 
    true;


  4. #4
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Quandi richiami reg_check_data() che parametro gli passi?
    Il notice dice che manca l'indice "action" a quell'array. Infatti non lo vedo dentro a $_CONFIG['check_table']
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Il fatto è questo; se io tolgo la funzione check mail e la variabile mail dall'array, tutto funziona regolare. Se aggiungo queste due cose appare quel notice, quindi non capisco come possa esserci un errore nell'array

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Ho appena scoperto che questi script anche all'originale non funzionano!
    Intendo che l'errore di sintassi c'è e non è causato da un edit maldestro.
    Potresti dirmi che parametro dovrei affiancare all'array?

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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.