PDA

View Full Version : [PHP]help include


Pro7on
28-02-2007, 14:14
ho un file che lavora su db, il probblema che il file di configurazione dle db e una cartella sopra e include nn me lo da valido ???


es. cartella A, dentro A c'è a.php che al suo interno richiama include'../db.php';

ma nn riesce a leggermi il file.... ameno che nn metto db.php nella cartella A.


Adesso in php.net ho trovato esto:

Avvertimento
la versione per Windows di PHP antecedente la 4.3.0 non supporta l'accesso remoto ai file da parte di questa funzione, anche se allow_url_fopen è abilitato.



come posso risolvere?:rolleyes:

andbin
28-02-2007, 14:23
ho un file che lavora su db, il probblema che il file di configurazione dle db e una cartella sopra e include nn me lo da valido ???


es. cartella A, dentro A c'è a.php che al suo interno richiama include'../db.php';

ma nn riesce a leggermi il file.... ameno che nn metto db.php nella cartella A.Non è che a.php è a sua volta incluso da un altro file??? Infatti nota cosa dice il manuale: If filename begins with ./ or ../, it is looked only in include_path relative to the current working directory.


Adesso in php.net ho trovato esto:

Avvertimento
la versione per Windows di PHP antecedente la 4.3.0 non supporta l'accesso remoto ai file da parte di questa funzione, anche se allow_url_fopen è abilitato.

Non c'entra nulla se includi solo file locali.

Pro7on
28-02-2007, 14:27
Non è che a.php è a sua volta incluso da un altro file??? Infatti nota cosa dice il manuale: If filename begins with ./ or ../, it is looked only in include_path relative to the current working directory.


Non c'entra nulla se includi solo file locali.


in che senso nn posso includere un file da piu file? xche sono i dati per conettersi al db e la cosa mi serve in molte pagine????

andbin
28-02-2007, 14:45
in che senso nn posso includere un file da piu file? xche sono i dati per conettersi al db e la cosa mi serve in molte pagine????No .. non hai capito. Lo stesso file lo puoi includere da tutti gli script che vuoi. Devi però prestare attenzione se ci fossero inclusioni a catena.

Pro7on
28-02-2007, 14:48
No .. non hai capito. Lo stesso file lo puoi includere da tutti gli script che vuoi. Devi però prestare attenzione se ci fossero inclusioni a catena.


scusa ma nn ho capito quel catena,

nel senso include'include....'; ???

se è cosi che intendi cmq no

andbin
28-02-2007, 14:58
scusa ma nn ho capito quel catena,

nel senso include'include....'; ???

se è cosi che intendi cmq noNo, ecco una possibile situazione:

Directory A
a.php che contiene un include 'prova/b.php';

Directory A/prova
b.php che contiene un include '../db.php';

Penseresti che db.php vada messo nella directory A perché in b.php viene indicato ../
No, va messo nella cartella superiore alla A.

Pro7on
28-02-2007, 15:08
No, ecco una possibile situazione:

Directory A
a.php che contiene un include 'prova/b.php';

Directory A/prova
b.php che contiene un include '../db.php';

Penseresti che db.php vada messo nella directory A perché in b.php viene indicato ../
No, va messo nella cartella superiore alla A.

aaaaa ho capito thx ;) adesso controllo che nn abbia sta situazione :D :D ma cmq e un po controsenso vabbe basta saperlo ti ringrazio;)

Pro7on
28-02-2007, 15:20
ahhaa avevi ragione, ma come faccio ??? poi n'altra cosa nel file che includo e che include e un file con dentro solo function e le variabili al'esterno delle function nn me le prende dentro?

devo usare tipo variabili globali o cose dle genere?

Thx;)

andbin
28-02-2007, 15:34
ahhaa avevi ragione, ma come faccio ??? poi n'altra cosa nel file che includo e che include e un file con dentro solo function e le variabili al'esterno delle function nn me le prende dentro?

devo usare tipo variabili globali o cose dle genere?Puoi usare un path assoluto (è quello che faccio normalmente io):

include "${_SERVER['DOCUMENT_ROOT']}/aaa/bbb.php";

RagingBull
28-02-2007, 15:40
vediamo se ho capito bene:

tu hai il file con le credenziali di connessione al db (ipotetico config.inc.php) nella directory principale del sito

e lo vuoi includere in un file che sta due directory sotto?

esempio:
/sotto_directory_1/sotto_directory_2/file.php

giusto?

Pro7on
28-02-2007, 17:59
vediamo se ho capito bene:

tu hai il file con le credenziali di connessione al db (ipotetico config.inc.php) nella directory principale del sito

e lo vuoi includere in un file che sta due directory sotto?

esempio:
/sotto_directory_1/sotto_directory_2/file.php

giusto?

si esatto, mi conviene fare un'altra struttura? o come posso risolvere?


per il path come lo creo il file solo.path? ma tu hai scritto .php giusto?:muro: :confused:

scusate ma ho appena imparato php e nn sono molto pratico :D

RagingBull
01-03-2007, 08:30
allora guarda....io solitamente risolvo mettendo tanti ../ quante sono le directory da risalire:

ad esempio

config.inc.php sta nella directory principale
e index.php sta due sottodirectory sotto

include ("../../config.inc.php");

se config.inc.php sta in una sottodirectory...ad esempio "admin"
e index.php in altre due sottodirectory non appartenenti ad admin...ad esempio "sottod1/sottod2"

include ("../../admin/config.inc.php");

prova....dovresti risolvere così

Pro7on
01-03-2007, 09:40
thx ;)...

provo ;) e ti dico

Pro7on
01-03-2007, 09:45
perfetto thx ;):D :D

Solo na cosa, io ho un file con dentro delle funzioni e include lo metto al'inizio ma le funzioni non mi vede le variabili ameno che nn scrivi a mano le variabili al'inizio della pagina fuori dalle function.:...???

Pro7on
01-03-2007, 14:33
perfetto thx ;):D :D

Solo na cosa, io ho un file con dentro delle funzioni e include lo metto al'inizio ma le funzioni non mi vede le variabili ameno che nn scrivi a mano le variabili al'inizio della pagina fuori dalle function.:...???


:confused: :muro: :mc:

RagingBull
01-03-2007, 20:37
sinceramente ho capito solo che il mio aiuto al primo problema è servito

del resto del messaggio ho capito quasi nulla

Pro7on
02-03-2007, 08:29
http://img369.imageshack.us/img369/8196/immaginefk1.jpg (http://imageshack.us)

ecco in pratica nel file con le funzioni richiamo il file con i dati del db il probblema che le funzioni nn me le vedono

RagingBull
05-03-2007, 13:25
spero di aver capito bene:

tutti quei quadratini rossi vuoti sono directory al cui interno ci sono file che richiedono le funzioni di kiamata al database.

se è giusto quello che ho scritto, devi utilizzare un percorso diverso per ogni include. a seconda di quanto vai giù con le sottodirectory.

Pro7on
05-03-2007, 15:05
spero di aver capito bene:

tutti quei quadratini rossi vuoti sono directory al cui interno ci sono file che richiedono le funzioni di kiamata al database.

se è giusto quello che ho scritto, devi utilizzare un percorso diverso per ogni include. a seconda di quanto vai giù con le sottodirectory.

si hai capito bene ma nn ho ben compreso quel defe modificarsi in base al livello della directory, come deve essere moficiato?

RagingBull
05-03-2007, 20:20
per i file della directory principale:

include ("cartella_file_database/config.inc.php");

per le sottodirectory di "cartella_file_database":

include ("../config.inc.php"); aggiungendo tanti ../ quante sono le sottodirectory da risalire.

per tutte le altre "ramificazioni" della struttura del sito:

include("../cartella_file_database/config.inc.php"); aggiungendo tanti ../ quante sono le sottodirectory da risalire.


la stessa cosa la puoi applicare a qualsiasi file da includere