ik loop tegen het volgende probleempje aan.

In een script het ik een config.php "gerequired".
Dit bestand heb ik verplaatst naar een submap. Reslultaat het werkt niet meer.

Kennelijk doe ik iets niet goed, maar ik zie het niet.

De constructie in de commentaarcode doet het prima. De andere niet.

Iemand een oplossing? Bedankt.

<?php

//require 'config.php';
require '/beho/config.php';
?>
Probeer dit eens om het op te lossen :

<?php
$root = $_SERVER["DOCUMENT_ROOT"];
// of zo
define("_ROOT_", $_SERVER["DOCUMENT_ROOT"] ); 

echo '$root = ' . $root . '<br />';
echo '_ROOT = ' . _ROOT_ . '<br />';

if( file_exists( $root . 'beho/config.php' ) )
{
	echo 'bestaat<br />';
}
else
{
	echo 'niet dus<br />';	
}

if( file_exists( _ROOT_ . 'beho/config.php' ) )
{
	echo 'bestaat<br />';
}
else
{
	echo 'niet dus<br />';	
}
?>


[size=xsmall]Toevoeging op 10/04/2019 13:43:26:[/size]

Hier een andere oplossing waarbij je terugblader tot het bestand is gevonden.
<?php
$iniPath = '';
while ( !file_exists( $iniPath . 'template.php') ) {
	$iniPath .= '../';
}
include($iniPath . 'template.php');
?>
require 'beho/config.php';
(zonder de slash aan het begin - anders begin je in de root ...)
Of je zoekt ff uit waar je op dat moment zit. Dit doe je met getcwd(). Dan kun je per omgeving een volledig (absoluut) pad opgeven.
Iedereen bedankt voor de tips. Ik heb deze geprobeerd m.u.v. de scripts (het leek dat het mee eenvoudiger moest kunnen. De constructie van Rob blijkt gewoon te werken. Het probleem zat in een verwijzing elders in het script die niet correct was. Probleem opgelost.
[sup]Als je eenmaal een single point of entry framework gebruikt ben je van dit soort tijdrovende onbenulligheden af.[/sup]
En structuur in naamgeving in combinatie met een autoloader helpt dan ook - je hoeft dan nooit meer iets te includen. Het eenmalig definieren van een (intern) applicatiepad, bijvoorbeeld als constante, is ook niet verkeerd.
Zelf gebruik ik geen $_SERVER["DOCUMENT_ROOT"] maar dirname(dirname(__FILE__)).
Voornamelijk omdat eventuele cronjobs geen weet hebben van de $_SERVER variabele.
We hebben tegenwoordig __DIR__ (scheelt je een dirname()), en dirname() heeft ook een 2e parameter: $levels = hoeveel niveau's wil je omhoog (dus dirname(__FILE,2) doet hetzelfde als dirname(dirname(__FILE__)) - maar dirname(__DIR__) kan dus ook).
Ik zie het, die levels kwamen pas vanaf PHP 7.0.0. Een mooie toevoeging, ik ga er eens naar kijken.

Reageren