[PHP] Include naar pad beginnend met /../ werkt niet

Pagina: 1
Acties:
  • 129 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
Ik zit met het volgende probleem:

Mijn webserver draait PHP 4.2.2
In een bepaalde map bevind zich een bestand config.inc.php
In een submap bevind zich een php script met een include regel naar config.inc.php
Deze wordt echter aangeroepen met de regel:
PHP:
1
include('/../../config.inc.php');

Als ik dit script start krijg ik als melding "Failed opening required '/../../config.inc.php' ".

Nu is mij verteld dat dit wel zou moeten werken als het php bestand wordt aangeroepen vanaf de root met het volledige pad. Dus:
php /path/to/dir/submap/script.php
Ook dit helpt niet bij mij.

Het config.inc.php wordt door andere scripts wel ge-include, dus met de lees rechten zit het ook wel goed.

Voor zover ik weet betekend een "leading slash" altijd de "document root", en ik begrijp ook niet hoe dit zou kunnen werken, maar dat terzake.

Hoe zou het kunnen dat dit wel op andere webservers werkt, maar niet op de mijne?

Let wel: het gaat mij er niet om, om eventjes de regel te wijzigen en te verwijzen naar ../config.inc.php (wat ik ook niet kan, aangezien het is gecodeerd met Zend).

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
/.. = /
/../../ = /

/../../config.inc.php is dus /config.inc.php

Je moet niet met een / beginnen gok ik zo, want dat verwijst naar de systeem-root. Andere servers kunnen het net zo goed niet, lijkt me. Tenzij ze in de systeem-root een config.inc.php zetten.

[ Voor 46% gewijzigd door ACM op 02-11-2004 17:04 ]


Acties:
  • 0 Henk 'm!

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 11:57

Sabbi

je denkt aan mij.

PierreAronnax schreef op 02 november 2004 @ 16:55:
Nu is mij verteld dat dit wel zou moeten werken als het php bestand wordt aangeroepen vanaf de root met het volledige pad. Dus:
php /path/to/dir/submap/script.php
Ook dit helpt niet bij mij.
.
Ik denk dat je hulpgever dit bedoelde:
PHP:
1
include(' /path/to/dir/submap/config.inc.php');

maar het is natuurlijk netter op gewoon ../../config te doen... of ergens je base dir te zetten en die te gebruiken...

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
te wijzigen .... wat ik ook niet kan, aangezien het is gecodeerd met Zend.
Als dat er echt staat moet je zoals ACM zegt config.php in je root plaatsen: /config.php (kan alleen als je hem zelf host)

Acties:
  • 0 Henk 'm!

  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
ACM schreef op 02 november 2004 @ 17:02:
[...]

Je moet niet met een / beginnen gok ik zo, want dat verwijst naar de systeem-root. Andere servers kunnen het net zo goed niet, lijkt me. Tenzij ze in de systeem-root een config.inc.php zetten.
Daar is Michiel (van Parse) het anders niet mee eens...

Lees ook mijn topic op met support forum van myreact:
http://support.myreact.nl/forum/list_messages/348

Het werkt wel op andere servers, dus config.inc.php verplaatsen naar de root kan niet de bedoeling zijn...

[ Voor 13% gewijzigd door PierreAronnax op 02-11-2004 17:25 ]

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl


Acties:
  • 0 Henk 'm!

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 11:57

Sabbi

je denkt aan mij.

Nee, je begrijpt verkeerd wat Michiel zegt... hij wil graag dat je in de include het volledige pad zet... (zoals ik hierboven al zei :) )

Kan je niet ergens in een niet-versleuteld-config bestand de lokatie van config.php veranderen?

edit: oeh, bij nader inzien denk ik dat je vermoedelijk ergens in een config bestand de lokatie van de home/base-dir van react moet inkloppen. die staat dan vast nog op "", waardoor ergens in die config.php je dit krijgt:
PHP:
1
include("/".$basedir."config.inc.php");

en die genereert dan dus die error...

Gaaf social reverse engineeren B)

[ Voor 53% gewijzigd door Sabbi op 02-11-2004 17:34 ]


Acties:
  • 0 Henk 'm!

  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
Sabbi schreef op 02 november 2004 @ 17:26:
bij nader inzien denk ik dat je vermoedelijk ergens in een config bestand de lokatie van de home/base-dir van react moet inkloppen. die staat dan vast nog op "",
Het enige bestand waar je de locaties moet opgeven van de verschillende directories is in het bestand config.inc.php...
En deze is netjes ingevuld.

Als ik kijk in andere niet versleutelde scripts wordt gebruik gemaakt van:
PHP:
1
2
    define("BASEDIR_CONFIG","./");
    require_once BASEDIR_CONFIG .'config.inc.php';

en:
PHP:
1
    require_once "../non-www/config.inc.php";


Ik zal Michiel eens vragen hoe de include regel er exact uitziet in het versleutelde script.

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl

Pagina: 1