include in sub directory

catellostefano

Utente Attivo
19 Dic 2008
525
2
0
www.stepo.biz
Ragazzi è possibile mettere il file config.php in una sub directory e richiamarla con il comando
PHP:
include_once "file/config.php";
???????????????

attualmente mi da errore!!
 
Prima di tutto non è la sintassi corretta, ma è così:
PHP:
include('file/config.php');

Secondo certo che puoim basta lavorare con le path relative (i famosi punti e slash).

Puoi fare un albero delle cartelle e dei file che includono e/o vengono inclusi?
 
la sintassi non è obbligatoriamente come hai detto tu!!!
cmq

ecco come ho risolto
PHP:
include_once '/home/stefanos/public_html/subdom/nino/config.php';

cioè ho inserito l'indirizzo totale dall interno del server
 
Il mio era solo un consiglio, perchè mi hano sempre corretto dicendo di usare le ( ) per le funzioni escluso echo e print.

Comunque puoi evitare tutta quella stringa usando le path relative.
PHP:
include('./config.php');

Ti semplifichi di molto il lavoro...
 
ciao
l'include non ha bisogno delle ()
(vedi http://it2.php.net/manual/en/function.include.php es #1).
comunque è meglio con _once

with the only difference being that if the code from a file has already been included, it will not be included again

i punti ho lo slash dipendono da dove è posto il file da includere rispetto al file che include
es:
entrambi nella root (o nella stessa cartella)
include_once "da_inc.php";

file che include nella root e da includere in una cartella
include_once "mia_cartella/da_inc.php";

entrambi in cartelle diverse
include_once "../mia_cartella/da_inc.php";

ecc.....
 
ciao
l'include non ha bisogno delle ()
(vedi http://it2.php.net/manual/en/function.include.php es #1).
comunque è meglio con _once

with the only difference being that if the code from a file has already been included, it will not be included again

i punti ho lo slash dipendono da dove è posto il file da includere rispetto al file che include
es:
entrambi nella root (o nella stessa cartella)
include_once "da_inc.php";

file che include nella root e da includere in una cartella
include_once "mia_cartella/da_inc.php";

entrambi in cartelle diverse
include_once "../mia_cartella/da_inc.php";

ecc.....

Come scritto il mio era solo un consiglio, se vai a vedere l amaggior parte dei lavori postati in internet di grande importanza come CMS utilizzano le (), solo per esempio però. Io sono abituato così perchè dopo tutto è sempre una funzione quindi uso le (). echo print non gli uso quindi è come se non sistessero per me.

Lui ha detto che "riceve un errore", non ha detto che gli dice che il file è già stato incluso o no, quindi sarebbe meglio provare con include e basta in modo da verificare non sia già stato incluso dove magari non deve.

Il fatto degli slash e puntini gli ho chiesto appunto di postare un albero delle cartelle e tutto per dirgli come scrivere la path relativa, altrimenti dipende da molte cose.

Se includo da una cartella e devo includere un file della root o il contrario, se includo dalla stessa root e via dicendo.
 
Solo una puntualizzazione:

Io sono abituato così perchè dopo tutto è sempre una funzione quindi uso le ()

Il fatto è che include non è una funzione ma un costrutto e per questo motivo non richiede le parentesi. Se fosse una funzione non sarebbe possibile usare la forma senza parentesi.

Sempre preso dalla documentazione ufficiale:

PHP:
<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>
 
include mika ha valore, OK non è nè true nè false, come fa a funzionare?!

Non voglio permettermi di sembrare che stia facendo il maestro eh, c'è sempre da imparare.

In ogni caso mi smebra strano tu sottolinei il non quando proprio nella documentazione ufficiale ci sia:
include(), mentre in echo no.
Altra cosa, se scrivi:
Codice:
http://it2.php.net/[B][U]function[/U][/B].include
funziona, mentre
Codice:
http://it2.php.net/include
no, al contrario di:
Codice:
http://it2.php.net/echo
e
Codice:
http://it2.php.net/function.echo

Ripeto, la mia è solo informazione e nel caso sbagliassi vorreie ssere correto, ma mi sembra strano sia come sottolinei tu.
 
include mika ha valore, OK non è nè true nè false, come fa a funzionare?!

Facendo riferimento al link postato da Borgo, ho dato per scontato che fosse stato preso in considerazione e letta la relativa documentazione.
Da questa risposta mi viene da pensare che o non è stato letto o magari letto superficialmente (particolare attenzione all'esempio #4 relativo a "Handling Returns").

In ogni caso mi smebra strano tu sottolinei il non quando proprio nella documentazione ufficiale ci sia:
include(), mentre in echo no.

Da http://it2.php.net/echo:
echo() is not actually a function (it is a language construct)
Mi sembra che anche qui ci siano le parentesi


Se vado su http://it2.php.net/include mi funziona, ma non è molto indicativo anche se non avesse funzionato... Se guardi echo è messo sotto "Strings functions", ma la prima cosa che dice è che non è una funzione...

Ripeto, la mia è solo informazione e nel caso sbagliassi vorrei essere correto, ma mi sembra strano sia come sottolinei tu.
Riguardo al fatto che include non sia una funzione, mi sembra che non ci siano dubbi. Se poi si vuol vedere si può provare questo:

File isfunction.php
PHP:
$func_name = "include";
$func_name('include.inc.php');

$func_name = "echo";
$func_name("<div>Ciao mondo da echo!</div>");

$func_name = "printf";
$func_name("<div>Ciao mondo da printf!</div>");

File include.inc.php
PHP:
<div>Ciao mondo da include</div>

Richiamando isfunction.php vediamo l'errore che ritorna:
Fatal error: Call to undefined function include()
Basta per dire che non è una funzione?! :D

Poi basta provare a commentare pezzo per pezzo e si vede che lo stesso errore ritorna per echo (che di nuovo non è una funzione) mentre funziona perfettamente per printf (che invece è una funzione)
 
wowwowowow non controllo da 2 giorni ed ho avvaito una discussione!!!!

il problema l'ho risolto ora non imposta se mettere le () è una cosa personale!!!

il problema e che io non davo la cartella di root e quindi non mi trovava il file!!
ora si CONCLUSO!!! OK??

ora datevi la mano in segno di pace:D:D:D:D
 

Discussioni simili