phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Classe in error_handler

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Classe in error_handler

Messaggio da BMercer » 17/08/2010, 20:51

Salve, avrei un problema che però non riesco a risolvere per conto mio per il motivo che segue:
Ho installato xampp perchè mamp senza motivo non mi mostrava gli errori anche se il file php.ini aveva display_error settato su on e anche se il parametro error_reporting era E_ALL. Solo che su xampp il file php.ini non riesco ad editarlo perchè se clicco su salva dopo le modifiche mi dice "Impossibile registrare il file" anche se il file è in modalità Lettura e Scrittura. Xampp di default ha l'error_reporting settato su E_ALL eccetto i notice.

Ho creato una funzione per gli errori di php che poi viene definito attraverso la funzione nativa set_error_handler(callback function); Dentro alla funzione ho la necessità di caricare una classe per la gestione del template e quindi ciò che deve essere mostrato quando comprare l'errore. Il file in cui c'è l'error_handler vi sono già gli include necessari per richiamare i file che contengono la classe template.

Il problema è che se provoco un parse error non mi viene mostrato come dico io, ovvero richiamando la classe template, ma come php fà di default, ovvero pagina bianca con scritta nera.
Se provoco un notice ad esempio facendo l'echo di una variabile che non è settata non mi mostra nulla a causa del file php.ini. Se utilizzo la funzione trigger_error con tipo di errore E_USER_WARNING/NOTICE/ERROR non mi mostra nulla. Se provo un Fatal error attraverso un require(); che richiama un file inesistente non mi mostra nulla. Non sò più cosa fare. Non mi mostra nulla che non sia i Parse error e oltretutto senza caricare la funzione.

Siccome pensavo fosse a causa di una classe ho provato ad inserire un echo 'Errore personalizzato' dentro la funzione di error_handler ma non mi mostra nemmeno quello. Boh.
Idee?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Classe in error_handler

Messaggio da Carlo » 17/08/2010, 21:45

Per chiarire. Il "parse error" non deve essere nello stesso file PHP contente il callback della funzione set_error_handler(), altrimenti non carica il contenuto della pagina e quindi non usa quella funzione come handler per gli errori.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Classe in error_handler

Messaggio da BMercer » 18/08/2010, 0:54

Si quello è ovvio, infatti è provocato da questo codice esterno a tutto e alla fine del file:

Codice: Seleziona tutto

echo ''
echo '';

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Classe in error_handler

Messaggio da Carlo » 18/08/2010, 22:24

Eh no. Non funziona perchè il PHP nota subito dei parse error, e quindi non "compila" lo script.

Prova includendo il file con gli errori alla fine dello script php contenente la funzione che da handler.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Classe in error_handler

Messaggio da BMercer » 19/08/2010, 13:10

E' vero non ci avevo pensato. Il problema è però un altro, non riesco a vedere gli altri errori.
Cosa posso fare?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Classe in error_handler

Messaggio da Carlo » 20/08/2010, 20:56

Che inteni con gli "altri" errori?
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Classe in error_handler

Messaggio da BMercer » 20/08/2010, 22:35

Tutti gli altri errori di php tranne il parse. Ovvero vedo il parse ma non gli altri, vedi i notice, i warning, i fatal...ec..

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Classe in error_handler

Messaggio da Carlo » 21/08/2010, 17:51

Dipende dalla configurazione del PHP. Probabilmente la configurazione in uso sul server, fa vedere solo gli errori di parsing.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Classe in error_handler

Messaggio da BMercer » 22/08/2010, 2:24

Xampp di default ha l'error_reporting settato su E_ALL eccetto i notice.
No, dice tutto ma non i notice.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Classe in error_handler

Messaggio da Carlo » 22/08/2010, 21:16

Non è che hai cambiato tramite ini_set() il valore della direttiva error_reporting?
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 118 ospiti