• Bannato User Attivo

    Notice: undefined Index

    Oggi chiedo io il vostro aiuto.

    Come di consueto:
    Ho inizializzato tutte le variabili, nessun errore di string offset ecc...
    Questi errori, meglio notice, escono perchè ho abilitato la visualizzazione ti qualsiasi avviso (error_reporting = E_ALL). Lo faccio sempre quando sviluppo qualcosa di nuovo...

    Ora però ho un problema che non riesco a risolvere.

    L'errore che mi viene restituito, anche se non è un errore grave è quello che ho riportato in oggetto ed è riferito ad un array.

    In pratica ho creato diverse funzioni che effettuano una richiesta ad una tabella del database nella quale sono contenuti i diritti di accesso alle varie sezioni del sito. Alla fine mi viene restituito un array così composto:

    array('primo_identificativo_permesso' => '1 o 0', ... 'ultimo_identificativo_permesso' => '1 o 0').

    In base al permesso vedo poi di negare o abilitare l'accesso.

    Il problema è questo:

    Alla partenza non posso sapere con esattezza quanti indici ho nell'array, non posso nemmeno sapere se un indice è permesso 😢
    So solo che gli indici possono avere dei valori che ho stabilito io.

    Ad esempio, per la sezione degli articoli (un blog):

    abilitaAccessoBlog => true/false
    abilitaNuoviCommenti => true/false
    abilitaCancellazioneProprioCommento => true/false

    e via dicendo...

    Ora i permessi per una data sezione vengono acquisiti senza problemi ma mi viene restituito quell'errore.
    Errore che "ci sta tutto" visto che come ho detto, non posso sapere se un permesso viene richiamato o meno... Però vorrei eliminarlo... :arrabbiato:

    Qualche idea?

    Questo è il codice che uso
    [php]

    // codice precedente

    $mod=checkModeratedSection($var);

    if ($mod !== false) {
    $valori=getDataModeratedSection($moderazione, $var);

    $moderazione=$valori[0];
    $permesso='abilitaAccesso'.$valori[1];    
                                   
    if ($moderazione[$permesso] == 1) {
        if(checkIfFileExists($file)){
       
            // altro codice (tanto per alleggerire la cosa :yuppi:)
           
        }
    }
    

    }

    // altro codice (tanto per alleggerire la cosa :yuppi:)

    [/php]confido in voi...

    Ah dimenticavo: $valori contiene diversi dati sulla sezione richiesta... Questi sono si definiti, ma variano da sezione a sezione.

    Ad esempio il nome, che è contenuto in $valore[0] ...

    Una cosa: mi serve mantenere questa dinamicità!
    Nell'ACP che ho, un admin può gestire come meglio gli pare queste sezioni (per utente, per sezione, per gruppo utente .....)
    La parte pubblica deve adattarsi a queste disposizioni.


  • Consiglio Direttivo

    Ciao Portaile84

    se non ho capito male il problema e che comunque il tuo script controlla n indici di array, quando è possibile invece ottenerne dallo script n-1, quindi è giusto che ti dia
    $array: index non definito 😉

    Se la situazione è questa non puoi far altro che assegnare un valore (anche NULL, equivalente di non assegnato per capirci ;)).
    Spero di aver carpito il problema, facci sapere :ciauz:


  • Bannato User Attivo

    Beh intanto grazie per la risposta... 🙂
    Purtroppo però non risolve il problema.

    Stavo pensando una cosa però...
    Ora vedo se riesco ad implementarla (è una funzione) ... poi vi faccio sapere 😛 eheh


  • Bannato User Attivo

    Ok... posso dire di aver risolto.
    Ho appena finito di, come si dice, smanettare con il php 😄
    Mi ritengo soddisfatto 😄

    Ecco cosa ho fatto:

    Vero che il vettore è dinamico, ovvero con tanti indici quanti permessi sono attribuiti ad usa sezione. Vero che nessuno mi vieta di contare quanti indici ci sono...

    Ho realizzato tre funzioni ognuna delle quali mi restituisce un valore o true/false (true/false solo se un dato indice esiste).

    Ecco i passi:

    Come prima cosa verifico se la sezione è moderata...
    se lo è passo dentro all'if ed eseguo il codice immediatamente dentro. Ovvero richiamo un'altra funzione che va ad acquisire il nome di ciascuna colonna che sarà (volutamente) uguale all'identificativo del permesso.

    Fatto questo il problema è risolto...

    ho scoperto l'esistenza della funzione php che verifica se un dato indice di un vettore esiste...

    se esiste bene... se non esiste considero l'utente come non loggato quindi ospite quindi con diritti minimi 😄

    Perfect 😄 risolto :yuppi: