Php include foutmelding

Status
Niet open voor verdere reacties.

marcoutrecht

Nieuwe gebruiker
Lid geworden
10 aug 2013
Berichten
3
Beste mensen,

Ik heb een bestandje playlist.php welke ik op mijn huidige site wil includen. Het bestandje staat in een mapje web in de public_HTML map op mijn server.

De volgende regel heb ik toegevoegd op de pagina waarop hij moet komen te staan: <?php include("web/playlist.php"); ?>

Echter, krijg ik nu op de website de volgende melding te zien:

Warning: require_once(../config/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/highle1q/public_html/web/playlist.php on line 5

Fatal error: require_once() [function.require]: Failed opening required '../config/config.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/highle1q/public_html/web/playlist.php on line 5

Kan iemand mij vertellen wat ik nu fout doe?

Groetjes,
Marco
 
dit is omdat je include dus code uitvoert van de plaats waar je staat dit tot verschil van require voert de code op die ter plaatse uit (binnen het domein)
dus kan je op dat moment
./web/config/config.php zijn en
./web/playlist.php

moet je eens print_r($_SERVER) plaatsen in het script en kijken naar je locatie zo zal je zeker de fout zien
 
Laatst bewerkt door een moderator:
web site heeft aantal bassis mappen dit kan zijn in volgende volgorde
domein> public_html > hier staat jou site direct in
zou handig zijn om paar mappen aan te makken
volgende
include
database
images
hier onder zie dan alleen hooft pagina's
om alles in goede banen te laten leiden


tip om op het forum netjes te werken verzoek ik je toch de php tags te gebruiken
PHP:
[QUOTE]
wel  ff  voorzien  van de afsluiters
 
Kan iemand mij vertellen wat ik nu fout doe?

PHP vertelt je al *exact* wat je fout doet en waar het fout gaat. Playlist.php doet op regel 5 een include naar "../config/config.php" en dat bestand bestaat niet.

De oplossing is om ervoor te zorgen dat op regel 5 van playlist.php het juiste pad wordt aangewezen en de simpelste manier om dat te doen is om "../config/config.php" te vervangen door het volledige pad op de server, dus niet de URL, maar het bestandspad op de webserver zelf, meestal iets als "/homes/a/antonius/webroot/public_HTML/config/config.php".

Ga *NIET* weer een relatief pad gebruiken, want relatieve paden worden altijd berekend vanaf het pad waarin het eerste aangeroepen script stond, niet vanuit de directory waar het script in staat dat de include uitvoert. Immers, een include laad code, het roept geen URL op.

En dit is een van de vele redenen waarom een single-point-of-entry handig kan zijn; dan loopt elke pageview via index.php en als je daarin dan een constante declareert waar het volledige pad in staat, dan kun je in de rest van je code gewoon die constante gebruiken:
include(ROOT_DIR_CONSTANTE.'pad/naar/config.php');
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan