Windows alatt nem találja a fájlt
Üdv Mindenkinek,
olyan érdekes dologgal találkoztam, hogy van egy weboldal és a helyi gépen (windows) tesztelve egy 'no such file or directory' hibaüzenetet kapok, míg a szerveren (linux) ez a hibaüzenet nem jön, elképzelhető, hogy a nincs beállítva linux-os gép alatt a hibakezelő változó - ezt nem tudom pontosan.
A szituáció a következő:
van egy fájl:
- index.php a legkülső könyvtárban található
- index.php, amelyben van egy hivatkozás: inlcude('ADMIN/hasznos.php') -ra
- a hasznos.php-ban van egy hivatkozás include('INC/c_session.php') - ra
- az 'INC' könyvtár az 'ADMIN' könyvtáron belül található
- az 'ADMIN' könyvtáron belül is van sok hivatkozás a 'hasznos.php'-ra
Ilyen esetben, hogyan kell megadni,h. mind az 'ADMIN' könyvtárból, mind pedig a főkönyvtárból hívott 'hasznos.php'-ban található 'INC/c_session.php' hivatkozás hibaüzenet nélkül működjön?
köszönettel
bsanyi
■ olyan érdekes dologgal találkoztam, hogy van egy weboldal és a helyi gépen (windows) tesztelve egy 'no such file or directory' hibaüzenetet kapok, míg a szerveren (linux) ez a hibaüzenet nem jön, elképzelhető, hogy a nincs beállítva linux-os gép alatt a hibakezelő változó - ezt nem tudom pontosan.
A szituáció a következő:
van egy fájl:
- index.php a legkülső könyvtárban található
- index.php, amelyben van egy hivatkozás: inlcude('ADMIN/hasznos.php') -ra
- a hasznos.php-ban van egy hivatkozás include('INC/c_session.php') - ra
- az 'INC' könyvtár az 'ADMIN' könyvtáron belül található
- az 'ADMIN' könyvtáron belül is van sok hivatkozás a 'hasznos.php'-ra
Ilyen esetben, hogyan kell megadni,h. mind az 'ADMIN' könyvtárból, mind pedig a főkönyvtárból hívott 'hasznos.php'-ban található 'INC/c_session.php' hivatkozás hibaüzenet nélkül működjön?
köszönettel
bsanyi
Beállítások
Az include_path PHP beállítás mire van állítva a helyi gépen és a szerveren? A . jó, ha mindig benne van.
Milyen verziójú PHP-t futtatsz? Valamelyik eléggé régi PHP-ben volt egy olyan bug, hogy az include-olt fájlból include-olt relatív elérési útú fájlt az eredeti fájlhoz képest akarta megtalálni, nem pedig az először include-olthoz képest.
válasz
igen elméletileg a linux-on is valami hasonló hibaüzenetet várnék, ha hasonlóan működne. Megnéztem a linux php-s beállításait és a log fájlát is lekértem, de ott semmi üzenet nem képeződik.
Nálam a windowson 4.4.2 - es verzió van, míg linuxon a 4.3.10-es php .
a library Path-ban mindkét esetben szerepel a '.' .
További ötlet, én már kimerültem ebben
bsanyi
Miért a hibát várod?
Léteznek egyáltalán azok a fájlok, amiket be akarsz include-olni?
A hibaüzenetek megjelenítését mindenesetre a display_errors és az error_reporting PHP beállításokkal tudod beállítani, ezeknek mi az értéke a te gépeden és a szerveren?
Azt még érdemes figyelembe venni, hogy Linux alatt a fájl- és könyvtárnevekben szereplő kis- és nagybetűk különbözőnek számítanak, míg Windows alatt ezek egyenértékűek. Ezért az a szokás, hogy minden fájl és könyvtárnév csupa kisbetűs, ezt betartva csökkenthető a hibalehetőségek száma.
__FILE__
hasznos
tehát a gép mindig azt csinálja, amit a felhasználó meg(be)ad neki
bár továbbra sem értem, hogy a Linux alatt miért nem kiabál, de ezek szerint egy kicsit hibatűrőbb a PHP Linux alatt???
További éber munkát mindenkinek
Üdv
bsanyi