Avatar billede razmuz_dk Nybegynder
12. august 2005 - 12:29 Der er 5 kommentarer og
1 løsning

Rod i niveauer

Hejsa Eksperter,

Jeg har et website med en mappe der hedder "inc", hvor i der ligger en fil der hedder "init.php" og en der hedder "sql.class.php". I "init.php" includes "sql.class.php" ved
include("inc/sql.class.php");

Når jeg includer init.php fra "/" via
include("inc/init.php");
Virker det fint!

Men hvis jeg inkluderer "init.php" fra et andet niveau, så går der kage i det. Den skriver den ikke kan finde sql.class.php. Fx hvis jeg gør sådan fra "pages/testfil.php":
include("../inc/init.php");

Jeg forstår godt hvorfor den brokker sig - den kan jo ikke finde mappen og filen "/pages/inc/sql.class.php".


Det jeg spørger om er: hvordan kan man løse dette problem? Altså skal init.php kunne finde sql.class.php ligegyldigt hvor init.php bliver kaldt fra! Jeg efterlyser flere løsningsmodeller! Helst uden brug af direkte stier i koden (fx include("D:\blah\blah\www\testside\inc\sql.class.php"))

mvh. Rasmus
Avatar billede ksoren Nybegynder
12. august 2005 - 12:32 #1
include("./inc/init.php");
Avatar billede jakobdo Ekspert
12. august 2005 - 12:47 #2
Som ksoren skriver, ./inc/init.php
. refere til det aktuelle dir, så det tror jeg ikke løser dit problem.
Prøv evt:
include("/inc/init.php");
/ = dit rod i dit webhotel/dir.
Avatar billede razmuz_dk Nybegynder
12. august 2005 - 13:05 #3
jakobdo-> Ja det ved jeg egentlig godt, men problemet er, at det script, der skal kalde init.php kører i mappe udenfor domænets "root". Init.php ligger på d:\data\sidenavn\inc\init.php, men filen der skal include init.php ligger på d:\data\hidden\fil.php

Meningen med dette er at filen ikke skal kunne kalde fra browseren, men kun via shell-kommando på serveren (c:\php.exe d:\data\fil.php).

Men jeg prøver lige at se om jeg kan få det til at du med "/". Jeg vender tilbage...
Avatar billede razmuz_dk Nybegynder
12. august 2005 - 13:17 #4
Kan man ikke sætte scriptet "aktuelle" dir via php på en måde? Fordi når jeg kører scriptet via php.exe (i konsollen) er mit aktuelle dir "C:\php", og det er jo ikke meningen.
Avatar billede razmuz_dk Nybegynder
12. august 2005 - 13:22 #5
chdir() !! :D
Avatar billede razmuz_dk Nybegynder
05. september 2005 - 16:34 #6
Lukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester