[php] probleem met open_base_dir

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb een probleem:
soms krijg ik een melding dat hij het bestand .php niet kan vinden (is een include)
de andere keer lukt het wel en include hij deze gewoon, als dat niet lukt dan krijg ik de foutmelding met open_base_dir erin, weten jullie eventueel het probleem (sorry voor vage omschrijving ben nu niet thuis ik post wat meer als ik thuis ben) iemand dit ook gehad eerder, misschien een oplossing, kan deze namelijk niet vinden al verschillende dingen gepoogd zoals $_SERVER[DOCUMENT_ROOT]/map/map/bestand.php gebruiken maar dit gaat ook niet altijd lekker
het vreemde is, dat als ik bv ../map/map/bestand.php gebruik, dat het de ene keer wel, de andere keer niet fout gaat...

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

als dat niet lukt dan krijg ik de foutmelding met open_base_dir erin
Heb je misschien iets meer info dan dat er 'open_base_dir' in staat?

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Open_base_dir restriction wil zeggen dat je nooit een bestand mag benaderen dat hoger in de tree staat dan het PHP script zelf.

Dus /map/map/vetman.php mag nooit /map/include.php openen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TheBorg schreef op dinsdag 11 oktober 2005 @ 16:52:
Open_base_dir restriction wil zeggen dat je nooit een bestand mag benaderen dat hoger in de tree staat dan het PHP script zelf.

Dus /map/map/vetman.php mag nooit /map/include.php openen.
misschien heb ik hier iets aan... zal het vanavond gaan uitzoeken, het vreemde is local, doet hij dit niet, alleen op server... maar ja server draaid ook in safemode en heeft deze dus ook aan staan...

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Wat bedoel je precies met "de ene keer wel en de andere keer niet". Gaat het om een enkel script met include dat het soms wel en soms niet doet? Of bedoel je dat het in het ene script wel goed gaat en in het andere niet? De foutmelding betekent simpelweg dat het bestand niet gelezen kan worden. Dat kan komen door een typo (linux is casesensitive!), maar ook doordat de verkeerde rechten zijn gezet. Om te kunnen includen heeft apache leesrechten nodig.

Ah, open_base_dir gaat om wat anders, zie The Borg dus :)

[ Voor 8% gewijzigd door T-MOB op 11-10-2005 16:58 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

TheBorg schreef op dinsdag 11 oktober 2005 @ 16:52:
Open_base_dir restriction wil zeggen dat je nooit een bestand mag benaderen dat hoger in de tree staat dan het PHP script zelf.

Dus /map/map/vetman.php mag nooit /map/include.php openen.
Voor zover ik weet gaat open basedir restrictie over iets anders. Gewoon dat je niet onder een bepaald niveau mag komen (bijvoorbeeld de webroot of je eigen domein directory), maar kun je daarin doen wat je wilt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T-MOB schreef op dinsdag 11 oktober 2005 @ 16:55:
Wat bedoel je precies met "de ene keer wel en de andere keer niet". Gaat het om een enkel script met include dat het soms wel en soms niet doet? Of bedoel je dat het in het ene script wel goed gaat en in het andere niet? De foutmelding betekent simpelweg dat het bestand niet gelezen kan worden. Dat kan komen door een typo (linux is casesensitive!), maar ook doordat de verkeerde rechten zijn gezet. Om te kunnen includen heeft apache leesrechten nodig.
een enkel script, die het dus de ene keer wel doet, de andere keer met die melding komt... die vanavond hier ga posten,...

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Bosmonster schreef op dinsdag 11 oktober 2005 @ 17:04:
Voor zover ik weet gaat open basedir restrictie over iets anders. Gewoon dat je niet onder een bepaald niveau mag komen (bijvoorbeeld de webroot of je eigen domein directory), maar kun je daarin doen wat je wilt.
Je hebt inderdaad gelijk:
Limit the files that can be opened by PHP to the specified directory-tree, including the file itself. This directive is NOT affected by whether Safe Mode is turned On or Off.

When a script tries to open a file with, for example, fopen() or gzopen(), the location of the file is checked. When the file is outside the specified directory-tree, PHP will refuse to open it. All symbolic links are resolved, so it's not possible to avoid this restriction with a symlink.

The special value . indicates that the working directory of the script will be used as the base-directory. This is, however, a little dangerous as the working directory of the script can easily be changed with chdir().

In httpd.conf, open_basedir can be turned off (e.g. for some virtual hosts) the same way as any other configuration directive with "php_admin_value open_basedir none".

Under Windows, separate the directories with a semicolon. On all other systems, separate the directories with a colon. As an Apache module, open_basedir paths from parent directories are now automatically inherited.
Ik vergis me ergens anders mee.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heb op de pc waar ik het op kreeg IE settings default gezet, deed deze het hier weer goed, op een andere (niets veranderd) waar het voor het wijzigen op de pc waar ik het kreeg het goed ging, nu weer niet, oftewel random fout... (leek ook al raar, dit is een server fout, geen browser fout), ik heb een raar vermoeden dat dit de serverbelasting is...
HTML:
1
2
3
4
5
Warning: main(): Unable to access weergave.php in /usr/inetpub/domein.nl/australie/test/admin/index.php on line 3

Warning: main(weergave.php): failed to open stream: No such file or directory in /usr/inetpub/domein.nl/australie/test/admin/index.php on line 3

Warning: main(): Failed opening 'weergave.php' for inclusion (include_path='') in /usr/inetpub/domein.nl/australie/test/admin/index.php on line 3


constructie van pagina

html (frames)
main frame (hier include in een aantal bestanden normaal gewoon include("");
daarnaast dit scriptje:
PHP:
1
2
3
4
5
6
7
8
for ($counter = 1; $counter <= $count_links && $succes == 0; $counter++){
    if ($P == $counter){
        include ("$LINK[$counter]");
        $succes = 1;
    }
}
if ($succes == 0){
        include ("$LINK[0]");

$LINK['1'] = "admin/index.php";
$LINK['2'] = "foto/index.php";
$LINK['3'] = "verslag/index.php";
$LINK['4'] = "gastenboek/index.php";
$LINK['5'] = "locatie/index.php";
$LINK['6'] = "ditdat/index.php";
$LINK['7'] = "links/index.php";
$LINK['8'] = "mailling/index.php";
$LINK['0'] = "login/index.php";

code:
1
2
3
4
5
6
7
8
9
dir tree:
root = /usr/inetpub/domein.nl/
         map = australie/
         index.html
         main frame.php (include admin/index.php)
                  map = admin/
                  index.php (include weergave.php)
                  weergave.php
etc...

[ Voor 45% gewijzigd door Verwijderd op 12-10-2005 01:07 ]

Pagina: 1