Visualizzazione risultati 1 fino 24 di 24
Like Tree2Likes
  • 1 Post By darbula
  • 1 Post By dreadnaut

Discussione: PHP Rimane bloccato su un errore

  1. #1
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito PHP Rimane bloccato su un errore

    Buongiorno ragazzi aprendo il mio sito (totalmente a caso senza aver fatto nessuna modifica) mi compare questo:

    Fatal error: require(): Failed opening required 'firewall.php' (include_path='.:') in /membri/camiongest/functions.php on line 2

    Ora premetto che ho disattivato la comparsa di errori sia con script che dai comandi di altervista quindi non mi spiego il fatto che mi dica cosa sia successo ma vabbè. La cosa più importante è che oltre a non aver fatto niente ho provato di tutto (oltre che diversi include o require anche a non richiedere il file che non è essenziale) ma la situazione è completamente bloccata non cambia niente, l'errore rimane lo stesso anche se faccio include pippo.php pare che il sito sia "freezzato".

    Qualche suggerimento? (Ho smanettato un po' anche con htaccess ma non è cambiato niente).

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,709

    Predefinito

    L'errore indica che manca il file "firewall.php". Hai un alterSito o alterBlog? Nel primo caso, controlla la presenza di tutti i file, nel secondo ripara il blog da qui.

    Ciao!

  3. #3
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    il problema è che il file non manca, ho tutti i permessi per leggerlo come ho sempre fatto ed ho provato anche rimuovendo la chiamata al file (non essenziale) nel codice ma l'errore persiste pur non essendoci nessun riferimento al file. Ho provato a cancellarlo e ricaricarlo, le ho provate tutte ma il sito rimane sempre così, ho un altersito

  4. #4
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    cosa posso fare per risolvere al più presto?

    Dal mio lato credo sia tutto a posto, è possibile controllare lato server vostri?

  5. #5
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,709

    Predefinito

    Il file "firewall.php" lo hai scritto tu? Include qualche altro file inizialmente?

    Ciao!

  6. #6
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Il file "firewall.php" lo hai scritto tu? Include qualche altro file inizialmente?

    Ciao!
    Non lo ho scritto tutto io ma in diverse parti, è un semplice script. No non include nessun altro file è "a se stante". Ho provato a non richiamarlo nel file funzioni ed a fare tantissimi cambiamenti (anche provocare errori appositamente) ma il sito rimane completamente bloccato su quell'errore (inesistente). Per questo non mi rimane che pensare che magari sia un errore non del mio codice.

  7. #7
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,259

    Predefinito

    Slave,
    ha provato in functions.php a commentare l'iclusione di firewall.php?

    Cordiali saluti.

  8. #8
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Slave,
    ha provato in functions.php a commentare l'iclusione di firewall.php?

    Cordiali saluti.
    certo, è la prima cosa che ho fatto!

    Non avrei mai scritto qui se fosse un problema da poco ma pare non lo sia perchè non ho trovato soluzione ed il mio codice è pulito. Non volevo ribadirlo ma vorrei chiedere se qualcuno che gestisce i server può dare un'occhiata...

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Sembra più un problema di percorsi.
    Dove si trovano il file firewall.php e lo script in esecuzione?

    Se dopo aver rimosso [tutte] le direttive che richiedevano quel file ti viene comunque mostrato il messaggio d'errore ci sono due possibilità:
    1. il file che stai modificando non è quello che viene eseguito
    2. hai un sistema di cache che mostra o elabora il contenuto precedente del file (di fatto ignorando le tue modifiche)

    Nel secondo caso il problema si risolve automaticamente dopo pochi minuti. Se così non è sei nel primo caso (o non hai rimosso tutte le inclusioni).

    ho provato [...] anche a non richiedere il file che non è essenziale
    Non è legato la problema, ma se non è essenziale dovresti usare include anziché require.

    I suggerimenti che do più spesso:


  10. #10
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    Non è essenziale nel senso che se è la causa di 1gg di problema posso farne a meno ma in condizioni normali è richiesto quindi require. Confermo che non ho nessun sistema di cache (es Cloudflare), il problema persiste da quasi 1gg, ed il file firewall e functions sono nella stessa cartella, i percorsi sono corretti.

    Non so più che fare...

  11. #11
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,259

    Predefinito

    Anche Wordpress ha la propria cache, attivabile/disattivabile da Impostazioni->cache.

    Se il sito è Wordpress, nel caso in cui abbia la cache di Wordpress attiva, ha provato disabiltarla?

    Cordiali saluti.

  12. #12
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    Non è un sito wp, è un normale sito in php. Il codice confermo è pulito tanto che gira correttamente in localhost e non ha dato nessun problema fino a ieri, il punto è che non avendo fatto nessun cambiamento (il problema è sorto spontaneamente) non so cosa cambiare.

  13. #13
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    ed il file firewall e functions sono nella stessa cartella, i percorsi sono corretti.
    functions.php è il file che richiede firewall.php, ma è anche il file in esecuzione o viene a sua volta incluso da un altro?
    Se lo script in esecuzione si trova in un percorso differente è normale che non funzioni, include e consimili fanno riferimento al percorso dello script in esecuzione, non a quello del file che li utilizza.

    I suggerimenti che do più spesso:


  14. #14
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    il file in esecuzione richiama functions che contiene firewall ma sono tutti e 3 nella stessa cartella. Inoltre ho riprovato per scrupolo e l'errore persiste anche con firewall sotto commento nel file functions

  15. #15
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Se l'errore persiste e non hai cache... il file che stai modificando non è quello che viene eseguito!

    I suggerimenti che do più spesso:


  16. #16
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,709

    Predefinito

    Ti chiedo una cosa: rinomina il file "index.php" in altro modo (ad esempio "index_old.php"), quindi crea un nuovo file index.php scrivendoci dentro qualcosa di molto semplice, anche non PHP, del tipo:
    Codice HTML:
    <!doctype html>
    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    <p>test</p>
    </body>
    </html>
    Altra cosa forse scontata, ma sei sicuro di modificare il file associato all'account "camiongest"? Hai più account su AlterVista?

    Ciao!
    Ultima modifica di alemoppo : 12-08-2020 alle ore 19.40.17

  17. #17
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    la modifica viene presa correttamente, ovvero il file di test nuovo viene preso come nuova index, tuttavia cancellandolo e rinominando la vera index l'errore persiste.

    Per mzanella, l'unico file in cui richiamo firewall è functions, ho controllato e sto modificando quello.

    E' una cosa strana che non mi era mai successa

  18. #18
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,709

    Predefinito

    Se vuoi, puoi mostrarci lo script del file index.php originale così da cercare di capire l'origine del problema?

    Ciao!

  19. #19
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    a niente il file index orginale richiama semplicemente un file chiamato session manager.

    Questo è lo "schema"

    index.php ----require---> sessionmanager.php (vengono fatti alcuni controlli e richiamate alcune funzioni) ----require---> functions.php ----require---> firewall.php -----> .... query al DB (il firewall fa da filtro prima che si arrivi al db)

  20. #20
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    require dirname(__FILE__).'/magico_percorso.php';
    //oppure /membri/camiongest/functions.php
    ovviamente anche per firewall.php sta qui il tuo errore poiché vedi con i tuoi occhi il percorso relativo firewall.php invece del percorso assoluto /membri/camiongest/firewall.php.
    Questo funziona sempre per la propria directory corrente (ovviamente un programmatore conosce già a priori la "gerarchia parziale" delle proprie directory e file del suo progetto devi semplicemente adeguarti ad andare avanti e indietro).
    Per i file php puoi solo utilizzare
    un percorso assoluto e non parziale.
    /membri/camiongest questa è la web root (significa accessibile da remoto su internet).
    Non funziona ini_set sulla maggior parte dei server condivisi però puoi abbassare spegnere con error_reporting(0); o l'operatore di soppressione degli errori "la chiocciola" ma è considerato codice scadente poiché gli errori sono utili in ogni circostanza specialmente se l'utilizzatore non è un programmatore.
    Ultima modifica di darbula : 13-08-2020 alle ore 03.42.05
    mzanella likes this.

  21. #21
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    Oggi mi sono svegliato ed ho provato una cosa talmente stupida che nei giorni precedenti non avevo neanche pensato di fare. Uso sempre percorsi relativi ed anzichè richiamare il file firewall nella stessa cartella lo ho spostato un livello più sopra quindi anzichè require firewall.php ho fatto require ../firewall.php... RISULTATO? Sito tornato funzionante e file firewall letto ed applicato con successo come prima.

    Se qualcuno ha delle spiegazioni per questo rimango qui, si impara sempre.

  22. #22
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Se qualcuno ha delle spiegazioni per questo rimango qui, si impara sempre.
    Sembra più un problema di percorsi.
    Dove si trovano il file firewall.php e lo script in esecuzione?
    [...]
    functions.php è il file che richiede firewall.php, ma è anche il file in esecuzione o viene a sua volta incluso da un altro?
    Se lo script in esecuzione si trova in un percorso differente è normale che non funzioni, include e consimili fanno riferimento al percorso dello script in esecuzione, non a quello del file che li utilizza.
    Lo dicevo io ...
    Da quanto hai sperimentato lo script in esecuzione non si trova nella stessa cartella di firewall.php, ma in una cartella in un livello inferiore. Guardando il layout delle cartelle probabilmente si sarebbe notato prima e più chiaramente.

    require dirname(__FILE__).'/magico_percorso.php';
    Dovresti valutare di seguire il buon consiglio di darbula. Puoi anche usare __DIR__ anziché dirname(__FILE__).

    I suggerimenti che do più spesso:


  23. #23
    camiongest non è connesso Neofita
    Data registrazione
    03-08-2020
    Messaggi
    12

    Predefinito

    quelle sarebbero le scritture "canoniche" e da preferire ma io avendolo sempre trattato con percorso relativo in localhost, con 0 problemi non le avevo mai considerate. L'importante è aver risolto, era ben strano..

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se usi un path relativo con include e require, PHP segue il percorso partendo dalla directory che contiene lo script in esecuzione, che non è necessariamente quella che contiene il file in cui si trova il comando.

    Ad esempio:
    Codice PHP:
    # /index.php
    require 'lib/library.php';

    # /lib/library.php
    require 'module.php';

    # /module.php
    echo "PHP cerca questo file, non lib/module.php";
    Quando hai una catena di include, questo può causare confusione, motivo per cui si tende ad includere tutti i file al livello più basso possibile, oppure ad usare l'autoload.
    mzanella likes this.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •