Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Help errore Undefined index: action

    Ciao, sto seguendo la guida html.it per creare login-registrazione-permessi sul mio sito; con il login tutto ok, con la registrazione ho un problemino che non capisco... premetto che tutto funziona perfettamente lo stesso, arriva la mail e l'utente viene registrato correttamente, solo che appare questa pagina:

    Codice PHP:
    NoticeUndefined indexaction in localhost/include/reg.lib.php  on line 51 
    Registrazione avvenuta con successo

    Vi è stata inviata una email contente le istruzioni per confermare la registrazione
    Vi posto tutto il file:

    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://menwebsite.altervista.org/petsitter/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;
    }
    ?>
    La riga 51 che viene segnalata è questa:

    Codice PHP:
    $func $_CONFIG['check_table'][$field_name]; 
    perchè non gli piace?

    Grazie

  2. #2
    se verifichi gia' solo velocemente anche qui la colorazione delle righe nel tuo script noterai che a partire dalla funzione

    function reg_send_confirmation_mail($to, $from, $id){

    la colorazione delle righe viene alterata segnalando un evidente errore di sintassi nella formazione della variabile $msg. Errato utilizzo delle doppie apici nella stringa.

    Puo' essere che l'errore segnalato sia una semplice estensione dell'errore, come pure un altro errore di query non segnalato in precedenza.

    utilizza dei punti di debug con mysql_errorr() dopo le varie query.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ciao, ho subito sistemato il problema apici ma la segnalazione rimane...

    io uso php ed i db da una settimana e non riesco proprio a capire dove mettere precisamente l'istruzione

    Codice PHP:
    or die (mysql_errorr()) 

  4. #4
    Nell'array $_CONFIG['check_table'] non e' definito l'indice 'action', quindi quando viene scorso nel foreach e $field_name vale 'action', viene stampato quel notice.

  5. #5
    Ma i notice si disabilitanto dal php.ini, non sono errori.

    modificando in

    error_reporting = E_ALL & ~E_NOTICE

    che di default dovrebbe essere solo:

    error_reporting = E_ALL Ma non ricordo esattamente

  6. #6
    I notice si eliminano controllando le variabili.

  7. #7
    Si, ma solitamente, anzi semrpe, se tu prendi uno spazio web noterai che "l'errore" che lui riscontra in locale sul web non lo vedrà. Sono solamente notifiche che si, puoi eliminare, ma non è necessario farlo in quanto non condizionano il corretto funzionamento dello script/sito

  8. #8
    La cosa scomoda è che la riporta anche in remoto, ovvero il cliente si registra ed oltre ad avere la conferma ha anche quella simpatica notice.... non è molto professionale!
    Grazie a tutti per l'aiuto!

  9. #9
    E' strano che il tuo provider lo abbia ancora attivo, io non ho mai avuto un provider che tenga attivato i notice. Manda una mail al supporto e chiedi delucidazioni in merito all'error_reporting.

    Se vuoi fare una prova fai quella modifica che ho citato sopra al tuo file php.ini e vedrai che non avrai il minimo problema, te lo garantisco, e non è una di quelle cose che risolvi ora e te la ritrovi più avanti proprio perchè non è un errore ma una notifica.


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.