webForumDet fria alternativet

Felmeddelande: open_basedir?

PHPur PHP

4 svar · 316 visningar · startad av UrMe

Medlem sedan apr. 2001762 inlägg
Frågan#1

Hej, jag får en skumt felmeddelande när jag försöker inkludera en fil med "require"..

Felmeddelandet:

Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/***/home/***/***/***/beta/logincheck.php on line 25

Det är felmeddelandet som dyker upp.. (jag satt * så att ni inte skulle gå in och kika på sidan innan den var klar :) . för domännamnet stod nämligen där.)

Koden för att inkludera filen är:

require("../logincheck.php");

Jag har inte en susning om vad som är fel.. aldrig fått detta förut.. kan det vara webbhotellet som gjort några skumma inställningar nånstans?

Om man ska översätta lite rakt på så står betyder det väl att "Restriktionen för att öppna bas katalogen är påslagen"?

Rad 25 i logincheck.php är:

include("inc_onlinecheck.php");

Och inc_onlinecheck.php och logincheck.php ligger i samma katalog.. fast filen som inkluderar logincheck.php ligger i en katalog ovanför typ.

Tack på förhand!

Medlem sedan aug. 20002 975 inlägg
#2

Det blir lite knepigt ibland att inkludera filer som inkluderar ytterligare filer. Som jag har fått det till så includeras koden först och körs sedan, och om det är så i ditt fall så inkluderas logincheck.php först i filen en nivå över, och sedan försöker den hitta inc_onlinecheck.php men den finns inte i denna övre katalog.

Själv brukar jag i liknande situationer lägga en absolut sökväg för include/require. Alltså från /usr/... osv.

Medlem sedan apr. 2001762 inlägg
#3

Aha.. okej.. får också göra en absolutsökväg!
Tack för hjälpen!

Medlem sedan jan. 20001 006 inlägg
#4

Det är ditt webbhotell som konfigurerat PHP att bara tillåta inkluderingar (?) från den mapp PHP-scriptet körs. Alltså kan du inte använda ("../logincheck.php").

Det spelar ingen roll om du använder en absolut sökväg.

En säkerhetsgrej..

The special value . indicates that the directory in which the script is stored will be used as base-directory.
http://www.php.net/manual/en/configuration.php#ini.open-basedir

/j

Medlem sedan apr. 2001762 inlägg
#5

Batboy, jo alltså jag kunde inkludera ../logincheck.php problemet var sedan att inkluder ytterliggare en fil i logincheck.php ..
men det löste sig med absoluta sökvägen.

130 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)