[php] include in een include...juiste path?

Pagina: 1
Acties:

Onderwerpen


  • sharkzor
  • Registratie: Maart 2000
  • Laatst online: 09:32
in elke pagina include ik de pageheader. deze staat in de /includes map in de root van de applicatie.
Echter, die word vanuit verschillende submappen aangeroepen.

in de pageheader, worden weer andere dingen ingevoegd zoals de css en een plaatje. nu geef ik wel een path op met ../images/plaatje.jpg, maar als je de pageheader vanuit veschillende submappen include, verandert steeds het path en kan hij het plaatje en de css niet vinden.
Hoe kan ik dit op een nette manier voorkomen? ik kan wel een var in de config.php zetten met de root locatie van de applicatie, maar dat vind ik niet netjes. dan moet je die aanpassen als je hem gaat verplaatsen.

ik hoop het zo een beetje duidelijk te hebben uitgelegd.
heb al gezocht, maar komt niet veel goede oplossingen tegen

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Je kunt dit voorkomen door altijd vanuit een hoofd directorie te werken en vanuit daar alles te includen. Dat betekent dus dat je daarin een of enkele bestanden hebben die als startpunt dienen voor alles wat je wilt doen. Dit kun je doen door alle pagina/acties op deze manier te beginnen: index.php?page={pagina} of door alle pagina/actie bestanden in dezelfde directory te houden. Dan weet je zeker dat je dat wat je include altijd met hetzelfde pad te bereiken is. Dat bespaart je veel problemen.

Noushka's Magnificent Dream | Unity


  • DirkT
  • Registratie: Juli 2002
  • Niet online

DirkT

toet

Je kunt ook met de super globals van $_SERVER werken, doe daar maar eens een print_r van, dan kan je include paden gewoon absoluut maken.

iRacing profiel - FanaLEDs voor je racesimulatie displays en meer!


  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 06-06 09:54
Of je gebruikt iets als dit:
PHP:
1
2
3
4
5
6
7
8
9
10
// set the root dir constant for this webapp
define('WEBAPP_ROOT_DIR', dirname(__FILE__));       

// set system paths to read from
ini_set("include_path",                                                 
        "." . PATH_SEPARATOR .
        WEBAPP_ROOT_DIR . "/_lib" . PATH_SEPARATOR .
        WEBAPP_ROOT_DIR . "/_lib/packages" . PATH_SEPARATOR .
        WEBAPP_ROOT_DIR . "/_lib/objects" . PATH_SEPARATOR
    );

Dan hoef je geen paden meer op te geven bij het includen van bestanden.