Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Recuperare errori di Strict Standards

    Salve.
    Leggendo dei dati dal database con il modulo PEAR, mi genera i seguenti Strict:
    codice:
    Strict Standards: Non-static method DB::connect() should not be called statically in C:\Xampp_7\xampp\htdocs\recupero_dati_db\recupero_db.php on line 7
    
    Strict Standards: Non-static method DB::parseDSN() should not be called statically in C:\Xampp_7\xampp\php\PEAR\DB.php on line 520
    
    Strict Standards: Non-static method DB::isError() should not be called statically in C:\Xampp_7\xampp\php\PEAR\DB.php on line 557
    
    Strict Standards: Non-static method DB::isError() should not be called statically in C:\Xampp_7\xampp\htdocs\recupero_dati_db\recupero_db.php on line 9
    
    Strict Standards: Non-static method DB::isManip() should not be called statically, assuming $this from incompatible context in C:\Xampp_7\xampp\php\PEAR\DB\common.php on line 2195
    
    Strict Standards: Non-static method DB::isError() should not be called statically, assuming $this from incompatible context in C:\Xampp_7\xampp\php\PEAR\DB\common.php on line 1217
    Mi restituisce i risultati che voglio ottenere ma vorrei nascondere questi avvisi.
    Come posso reuperarli e nasconderli?
    Grazie.

  2. #2
    O ti cambi i metodi indicati, che lo script vede come non statici ma vengono chiamati come se lo fossero,
    Codice PHP:
    public static function bla bla 
    oppure nel php.ini sopprimi gli errori strict...mo l'opzione non me la ricordo ma tento di recuperartela.

  3. #3
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #4
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Grazie dell'aiuto poi ho fatto così come suggerito da oly1982:
    error_reporting(0);
    $db = @DB::connect();

  5. #5
    Originariamente inviato da Ironmax
    Grazie dell'aiuto poi ho fatto così come suggerito da oly1982:
    error_reporting(0);
    $db = @DB::connect();
    Tra le soluzioni proposte il quel topic questa era la meno consigliabile... e sicuramente non te la suggerirei.

    Io mi riferivo alla soluzione proposta nell'ultimo messaggio presente in quel topic.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Scusa oly1982 potresti postarmi qui il codice che dici.

  7. #7
    Da un copia e incolla
    I found it on line 266:

    PHP Code:
    Codice PHP:
    function isError($data$code null
        { 
            if (!
    is_a($data'PEAR_Error')) { 
                return 
    false
            } 
    ... 
    adding the keyword "static" before the keyword function makes it static.

    Now it looks like this:

    PHP Code:
    Codice PHP:
    static function isError($data$code null
        { 
            if (!
    is_a($data'PEAR_Error')) { 
                return 
    false
            } 
    Save changes and exit.

    Return to the page and refresh (Please, Please, Please, Work...) and it works. Yay!

    Not only that, it is now USING THE CORRECT CLASS instead of the class that called it.

    To be able to get Pear/Auth working with Pear/MDB2 and PHP 5, you may need to do this several times.

    So is there any intention by the Pear people to implement this change this in the future? No way! Adding the static keyword breaks the functionality in PHP 4, and PEAR intends to keep the reverse compatibility for the time being.

    Have a great day! I hope this post is helpful.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  8. #8
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Questo è quello che ho fatto:
    codice:
     function isError($data, $code = null) 
        { 
            if (!is_a($data, 'PEAR_Error')) { 
                return false; 
            }  
    }
    $db = @DB::connect('mysql://root:@localhost/anagrafica');
    // Controllo errori di connessione
    	if (DB::isError($db))
    	{
    		die ("Connessione al database non avvenuta: " . $db->GetMessage());
    	}
    Ora ha tolto tutte quelle sfilze di Strict Standard, ma me ne lascia uno:
    codice:
    Strict Standards: Non-static method DB::isError() should not be called statically in C:\Xampp_7\xampp\htdocs\login\index.php on line 16
    Mentre se aggiungo la parola static davanti alla funzione mi restituisce questo errore:
    codice:
    Parse error: syntax error, unexpected T_FUNCTION, expecting T_PAAMAYIM_NEKUDOTAYIM in C:\Xampp_7\xampp\htdocs\login\index.php on line 7
    e mi blocca tutto lo script

  9. #9
    Originariamente inviato da Ironmax
    Questo è quello che ho fatto:
    codice:
     function isError($data, $code = null) 
        { 
            if (!is_a($data, 'PEAR_Error')) { 
                return false; 
            }  
    }
    $db = @DB::connect('mysql://root:@localhost/anagrafica');
    // Controllo errori di connessione
    	if (DB::isError($db))
    	{
    		die ("Connessione al database non avvenuta: " . $db->GetMessage());
    	}
    falla diventare così

    Codice PHP:
     static function isError($data$code null
        { 
            if (!
    is_a($data'PEAR_Error')) { 
                return 
    false
            }  
    }
    $db DB::connect('mysql://root:@localhost/anagrafica');
    // Controllo errori di connessione
        
    if (DB::isError($db))
        {
            die (
    "Connessione al database non avvenuta: " $db->GetMessage());
        } 
    e "static" aggiungilo anche alla funzione connect e alla funzione parseDSN e davanti alle altre eventualmente che ancora riporta notice.


  10. #10
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Non ho inserito nessuna funzione static nel mio script.
    Ho modificato dirrettamente il file DB.php della directory PEAR.
    Praticamente sulle funzioni su cui dava problema ho messo la parola static, ed il problema è risolto.
    Adesso questi script sono in locale, ma se dovessi poi metterlo online quelle parole static dovrei tener conto di cancellarle?
    Va be poi si vedrà, comunque grazie ragazzi della collaborazione

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.