Include Instellingen.php
Ik ben momenteel bezig aan een website waarbij ik php/html/javascript/css gebruik.
Nu heb ik een boel instellingen die elke pagina opgevraagd moeten worden. Deze instellingen staan in het bestand: Instellingen.php. Hier in word dus van alles ge include en de css word geladen.
Dit werkt als een zonnetje, ik ben nu echter dieper bezig in de mappen en dan kan instellingen.php de verschillende includes niet meer vinden omdat hij in de verkeerde map zit te kijken.
Bijvoorbeeld:
"Home.php" staat in: "www\Applicatie\Home.php"
"BeheerHome.php" staat in: "www\Applicatie\Basis_applicatie\Beheer\BeheerHome.php"
"Instellingen.php" staat in: "www\instelingen\instellingen.php"
Een include in "Instellingen.php" is de uitloggen knop die verwijst naar: "../login/Uitloggen.php" ( staat in "www\login\Uitloggen.php" )
In zowel "Home.php" als "BeheerHome.php" staat "Instellingen.php" geinclude.
Als ik nu in "Home.php" op uitloggen klik gaat deze natuurlijk naar "www\login\Uitloggen.php". Dit werkt als een zonnetje.
Klik ik in BeheerHome.php op uitloggen gaat deze naar: "www/Applicatie/Basis_Applicatie/login/Uitloggen.php"
Zoals eerder vermeld is het correcte pat van Uitloggen.php: "www\login\Uitloggen.php"
Mijn vraag dus: Kan ik dit oplossen zonder het volledige pat er neer te zetten?
Ik wil eigenlijk niet gaan verwijzen naar: C:\ etc.
Dit omdat ik nu op een test omgeving bezig ben en als ik naar een productie omgeving ga de kans er is dat php op bijvoorbeeld d:\ staat. Dan moet ik alles gaan doorlopen om het pat te veranderen.
Groetjes!
ps: Het moet werken in IE/Firefox/Chrome
Waar 'include.php' dus de filenaam en het volledige path vanaf de root van de site is.
Code (php)
1
2
3
2
3
<?php
include (str_repeat('../', substr_count(substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT'])+1), '/')) . 'include.php');
?>
include (str_repeat('../', substr_count(substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT'])+1), '/')) . 'include.php');
?>
Gewijzigd op 02/06/2010 13:35:48 door - SanThe -
In mijn geval www\Config.
Mijn menu staat in www\menu deze kan ik niet er bij zetten met: ../menu/menu.php Hoe moet ik dit wel doen?
En de css en plaatjes vanuit html?
Het gaat om de plaats waar je je instellingen.php include, de relatieve paden moeten vanaf die locatie kloppen. En dan maakt het dus niet uit waar je instellingen.php zelf staat.
Lees anders de eerste post nog maar eens.
Het kan ook zijn dat ik je gewoon niet begrijp namelijk :).
Ja, dan zul je de relatieve paden dus vanaf een vaste locatie op moeten bouwen, bijvoorbeeld de document root die je in $_SERVER['DOCUMENT_ROOT'] kunt vinden...
set_include_path( implode( PATH_SEPARATOR, array($_SERVER['DOCUMENT_ROOT'], get_include_path() ) ) );
Dan kan ik zo include:
include ('config/Database_Config.php');
Nu even uitzoeken hoe ik dit met mijn css/plaatjes ga doen...