A me pare normale che non funzioni quando inc.php viene incluso a sua volta.
Finché viene chiamato inc.php direttamente come script è ovvio che rintracciando i due file sotto librerie con percorso RELATIVO tutto funziona, perché quello è un percorso relativo rispetto a dove sta inc.php (sotto /a/b/)
ma se lo script principale è /a/index.php tutti i percorsi -anche dei suoi file inclusi- sono relativi alla cartella /a/
Quindi, come quando per includere relativamente in /a/index.php il file /a/b/inc.php scrivi:
include("b/inc.php");
(giusto?)
anche dentro inc.php gli ulteriori "sotto-include" dovrebbero essere:
include("b/librerie/lib.php");
include("b/librerie/lib2.php");
OK?
Tu mi dirai: "eh ma io ho due casi diversi" (quando richiamo direttamente inc.php e quando quest'ultimo viene incluso da altro script)
Ed ecco un tipico caso in cui è IMPOSSIBILE far uso di percorsi relativi negli include, e quindi è necessario raggiungerli con percorsi assoluti, per es. in inc.php:
Codice PHP:
<?php
...
include("/membri/siticms/a/b/librerie/lib.php");
include("/membri/siticms/a/b/librerie/lib2.php");
...
?>
Nota bene che, come dice funcool, su altervista è possibile che la prima cartella utente sia o /membri/ oppure /membri2/
Puoi saperlo o consultando una TUA pagina .php con dentro scritta la riga:
phpinfo();
Oppure basta che scrivi una qualsiasi minkiata in uno script per farti uscire fuori un messaggio d'errore: nel messaggio ti indica il percorso ASSOLUTO del tuo script e lì vedi se è membri o membri2.
Se cerchi nel forum per "include" associato all'utente Heracleum noterai che nel 90% dei casi in cui si tratta di percorsi relativi io li sconsiglio sempre fortemente -se non si fosse ancora capito - consigliando invece gli assoluti.