php include werkt niet vanuit subdir

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Gegroet allemaal,

Ik zit weer eens met een probleempje.
Deze error krijg ik:

Not Found

The requested URL /index/index.php was not found on this server.
(Kortom hij zoekt in de www (hoofddir) en niet in de subdir)

Ik heb tijdelijk de hele site even in een subdir (zie het als hoofddir) gezet en daarin staan ook weer subdirs. De includes staan in de subdir(hoofddir) en de index.php die hier bij staat heb ik aan de gang gekregen.
Maar nu komen de bestanden in de subdirs.

Op vele hosts werkt dit gewoon <?php include($_SERVER['DOCUMENT_ROOT'].'/bestandsnaam.php');?> , maar op de host die ik nu tegenkomen blijkbaar niet. Ik heb hierover gebeld en toen zeiden ze dat ik het info bestand moest opzoeken om zo achter de path naam te komen.

Zo gezegd zo gedaan en dit is wat ik kreeg:

Your absolute path is: /home/vhosting/s/vhost0002249/domains/de-kameleon.net/htdocs/www/nieuw

Nu heb ik dit zo ingevoegd:

<?php include ("/home/vhosting/s/vhost0002249/domains/de-kameleon.net/htdocs/www/nieuw/footer.php"); ?>

Dit werkt dus niet. Voor de rest heb ik dit ook allemaal al geprobeerd (ja op het laatst ga je gewoon vanalles proberen, de gekste dingen):

<?php include ("footer.php"); ?>
<?php include ("../footer.php"); ?>
<?php include ("/footer.php"); ?>
<?php include ("./footer.php"); ?>
<?php include ("/htdocs/www/nieuw/footer.php"); ?>
Enzovoorts.. Enzovoorts..

Niks werkt gewoon, en waarschijnlijk zie ik gewoon iets over het hoofd maar ik kom er maar niet achter wat nu precies.

Dus nog een keer even kort:
Hoofdsubdir bestaat uit Includes + index.php (deze werkt)
Subdirs bestaan uit andere sub php bestanden waarin ik de php include dus niet werkend krijg.

Ik hoop dat ik het zo een beetje duidelijk heb uitgelegd, zo niet dan hoor ik het wel, en dat iemand de gouden tip heeft.

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Je moet in phpinfo-pagina zoeken naar het include_path, niet het absolute path.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Oef daar vraag je me wat. Enig idee waar ik dit kan vinden? Want dat absolute path heb ik gevonden via een scriptje dat ik even heb gegoogled. Is er voor dat wat jij zegt ook een script toevallig?

Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Volgens mij kan je gewoon de "DOCUMENT_ROOT" nemen die is te vinden onder "Apache Environment", dat komt uit het phpinfo (zie Johnny in "php include werkt niet vanuit subdir"). Dat werkt bij mij wel.

Je kan overigens ook het include-path vastleggen met:

PHP:
1
<?php ini_set('include_path','/hier_komt_het_path');  ?>

[ Voor 24% gewijzigd door Cadezo op 20-04-2009 19:41 . Reden: Komt tot inzien dat TS phpinfo.php niet kent. ]


Acties:
  • 0 Henk 'm!

  • Flipke84
  • Registratie: Juli 2008
  • Laatst online: 09-11-2024
Volgens mij moet je gebruiken
PHP:
1
$path = dirname($_SERVER["SCRIPT_FILENAME"]);

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Met de functie phpinfo() kun je de PHP-infopagina oproepen, gewoon een bestandje maken met de volgende code:
PHP:
1
<?php phpinfo() ?>


Daar staat alle informatie in over je PHP-installatie, plugins en instellingen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
.:/usr/share/php:/usr/share/pear

Dit is het include_path, heb dit voor mijn include gezet maar het werkt nog steeds niet en weet verder ook niet wat ik hier nu mee moet eigenlijk.

@cadezo: /htdocs staat bij document_root, weet alleen ook hierbij niet waar ik dit nu precies neer moet zetten, heb het al voor mijn include gezet maar dit werkt niet.

Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Krijg je een webserver error (404) of een PHP error?

En om er zeker van te zijn dat je een bestand include uit dezelfde directory als je huidige bestand kun je het volgende gebruiken.

PHP:
1
require_once dirname(__FILE__) . '/bestand.php';

[ Voor 66% gewijzigd door RAJH op 20-04-2009 19:52 ]


Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Blueflame_Core schreef op maandag 20 april 2009 @ 19:46:
@cadezo: /htdocs staat bij document_root, weet alleen ook hierbij niet waar ik dit nu precies neer moet zetten, heb het al voor mijn include gezet maar dit werkt niet.
Als je dit eens probeert:

PHP:
1
2
<?php ini_set('include_path','/path');  ?> 
<?php include('include_bestand.php'); ?>


Als /path kopieer je dan het gedeelte van Document_root, let wel even op dat het laatste deel van dat path wel de juiste map is waar je include bestanden instaan (deze geeft namelijk nu de map van phpinfo aan). Het include_path moet zonder slash zijn op het einde.

Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
The requested URL /index/index.php was not found on this server.

Ik denk een php error, maar weet het niet zeker, kun jij beter beoordelen denk ik ;).

Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Als je in een bestand een include moet doen, kun je het op de volgende manier doen:
PHP:
1
require_once( dirname(__FILE__) . "/HierJeDir/hierJeBestand.php" );


Hiermee kun je ondanks dat je bestand ergens anders geinclude wordt, toch een include zetten naar een direct path, wat waarschijnlijk bij jou het geval is.

edit:

Ik ben weer eens de 11e spuit :Z

[ Voor 7% gewijzigd door Enfer op 20-04-2009 19:53 ]


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 19-09 21:26

DataGhost

iPL dev

Dat is *geen* PHP-error, dat is een 404. Het heeft dus compleet geen zin je script aan te passen.

Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
@enfer aka de 11e spuit :p : Ook dit lukt niet. Of ik doe iets verkeerd.

@DataGhost: Als het geen enkele zin heeft om iets aan het script te veranderen,... wat dan :?

Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Blueflame_Core schreef op maandag 20 april 2009 @ 20:37:
@DataGhost: Als het geen enkele zin heeft om iets aan het script te veranderen,... wat dan :?
Hij bedoelt dat het bestand niet bestaat of niet op de aangegeven lokatie staat. Het script klopt dus wel, maar de lokatie niet. Mogelijk heb je een typfoutje gemaakt of is de lokatie niet goed gespecificeerd...

Lukt het met dat include_path ook niet?

Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Hmm sorry dat ik niet op je gereageert heb, nee werkt ook niet.

<?php ini_set('include_path','/path'); ?> --- Bij /path heb ik zowel /www/nieuw(mijn subdir) geprobeert als /nieuw
<?php include('include_bestand.php'); ?> -- Hier heb ik gewoon mijn include bestandsnaam ingevuld

Neem aan dat dat goed is.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Kijk naar de foutmelding, kijk naar je pad. Zie in de foutmelding "index" staan, zie in je pad "nieuw" staan. Surf naar http://www.de-kameleon.net/nieuw/ en ga jezelf voor je hoofd slaan...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Ja dat is de index die doet het wel, had ik ook gezegt, maar klik maar eens op home óf contact & openingstijden. Staan beide in een aparte subdir.

[ Voor 24% gewijzigd door Blueflame_Core op 20-04-2009 20:56 ]


Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Blueflame_Core schreef op maandag 20 april 2009 @ 20:50:
Ja dat is de index die doet het wel, had ik ook gezegt, maar klik maar eens op home óf contact & openingstijden. Staan beide in een aparte subdir.
Nu snap ik ook hoe je die 404-error krijgt... Volgens mij bestaat er geen bestand index.php in de map index, of wel? Eveneens met 'contact' en de rest. Heb je deze bestanden wel geuploadt naar de je hosting?

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Voor de contactpagina lijkt het simpel:
Het is niet http://www.de-kameleon.net/contact/contact.php, maar http://www.de-kameleon.net/contact/contact.htm. De link is verkeerd.

Voor die "Home": er bestaat blijkbaar niet eens een directory "index". De directory "contact" bleke wel te bestaan en zodoende kwam ik er ook achter dat die link niet klopte.

Edit:
Beetje spuit 11 dus...

[ Voor 6% gewijzigd door Joen op 20-04-2009 21:07 ]


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Jazeker wel.. Het staat alleen allemaal in de map 'nieuw' en dus niet in de mainroot 'www', misschien als ik dit wat nu in de map 'nieuw' staat naar 'www' zet dat het misschien wel werkt, maar dan nog moet je een site kunnen laten functioneren in een subdir lijkt me..

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Blueflame_Core schreef op maandag 20 april 2009 @ 20:50:
Ja dat is de index die doet het wel, had ik ook gezegt, maar klik maar eens op home óf contact & openingstijden. Staan beide in een aparte subdir.
Kijk eens even in je html:

code:
1
<li><a href="/index/index.php">Home</a></li>


Begint er nu langzaam een kwartje te vallen waarom die link naar /index/index.php gaat?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Ik heb het al opgelost. Kan me zelf wel voor me kop slaan en misschien ook wel een beetje.
De link was inderdaad verkeerd maar dan niet zoals Joen zegt.

Ik had 'nieuw' niet in de link staan !!!!! godsie echt dom :(.

En <?php include($_SERVER['DOCUMENT_ROOT'].'/bestandsnaam.php');?>

werkte ook niet omdat het immers niet in de maindir stond maar in een subdir pffffff.

Toch bedankt voor jullie meedenken en hulp mensen.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
http://www.de-kameleon.net/nieuw/index.php wordt opegrvaagd uit het pad /home/vhosting/s/vhost0002249/domains/de-kameleon.net/htdocs/www/nieuw/index.php op de server

Als ik dan naar contact ga kom ik uit op de link http://www.de-kameleon.net/contact/contact.php en blijkbaar bestaat er dus geen bestand op het pad /home/vhosting/s/vhost0002249/domains/de-kameleon.net/htdocs/www/contact/contact.php

Er zou dus wel een directory contact moeten bestaan op het pad /home/vhosting/s/vhost0002249/domains/de-kameleon.net/htdocs/www/ met daarin een bestand contact.php.
Klaarblijkelijk heb jij je contact.php dus ergens anders staan.

Misschien kun je het volledige pad noemen waar je die contact.php geplaatst hebt, want ik wordt tot nu toe nog weinig wijzer wat je bedoeling precies is.

Edit:
Dus "/nieuw/" moest er bij in staan in de link? Je mag je zelf wel ff diep gaan schamen... :P

[ Voor 6% gewijzigd door Joen op 20-04-2009 21:21 ]


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Inderdaad Janoz dubbeltje valt nu pas, maaaaaaaaaaar goed beter laat dan nooit.

Acties:
  • 0 Henk 'm!

  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Janoz schreef op maandag 20 april 2009 @ 21:16:
[...]

Kijk eens even in je html:

code:
1
<li><a href="/index/index.php">Home</a></li>


Begint er nu langzaam een kwartje te vallen waarom die link naar /index/index.php gaat?
Je kan ook voor het gemak de base-tag toevoegen, dus dit:
HTML:
1
<base href="URL">

Dan zorg je dat alle relatieve links hetzelfde uitgangspunt hebben, ongeacht de map of subdirectory waar ze in staan. Als je dan later dan dat nieuw uit de naam haalt is het maar één wijziging...

[ Voor 6% gewijzigd door Cadezo op 20-04-2009 21:22 ]


Acties:
  • 0 Henk 'm!

  • Blueflame_Core
  • Registratie: Augustus 2007
  • Laatst online: 20-09 13:20
Klopt de oude site staat nog in de maindir ('www') en de nieuwe had ik even apart gezet omdat die dus niet werkte. Ben er nu helemaal uit !

Mag van mijn part een slotje op ;)

P.s als de euro niet was ingevoerd was het dubbeltje waarschijnlijk wel sneller gevallen

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Een slotje is niet nodig op een topic als je je oplossing hebt. Zie daarvoor ook onze faq betreffende topiceinde.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1