Avatar billede okkels Nybegynder
17. marts 2005 - 22:33 Der er 8 kommentarer

Problemer med include-funktionen

Hej folkens,

Jeg er ikke så skarp i PHP, så her er et rigtigt rookie-spørgsmål:

Hvorfor kan jeg ikke få min include-funktion til at fungere, når det jeg inkluderer ligger i en anden folder?

Jeg bruger en simpel include-funktion, der ser sådan ud:
<?php
  include("../path/folder/index.php");
  ?>

Kan det virkelig passe, at jeg ikke kan inkludere filer fra et andet bibliotek? Nu skal det lige tilføjes, at hvis det bare er helt simple filer, så er det ikke noget problem. Det jeg gerne vil inkludere er fx et messageboard, der ligger i en seperat mappe. Jeg har en mistanke om, at problemet især opstår, når der er en include-fil i nogle af de filer jeg inkluderer... Men det er jo meget normalt, at man bruger include-filer - og jeg synes ikke det kan pssse, at alle filer skal ligge i samme mappe.

På forhånd mange tak for hjælpen.

/Kristoffer Okkels
Avatar billede detox Nybegynder
17. marts 2005 - 22:36 #1
Nej, det skulle ikke give problemer. Hverken at include filer fra andre mapper eller have include i disse filer. Men er du sikker på at stierne er rigtige, både i denne og de andre filer? Jeg vil nok anbefale at bruge absolutte stier, især i de filer du includer.
Avatar billede detox Nybegynder
17. marts 2005 - 22:39 #2
Altså absolutte stier i de includes du bruger i dine include filer. Ellers risikerer du jo at stien ikke længere passer, da de nu går ud fra den aktuelle mappe.
Avatar billede erikjacobsen Ekspert
17. marts 2005 - 22:55 #3
Du kan fx i en include fil du har øverst i samtlige dine PHP-filer lave en

  $HOME="/xxx/xxx/xxx";

som angiver dit rod katalog på serveren, og så

  include("$HOME/path/folder/index.php");

Og er du bare lidt heldigere end Jokerspillerne har været de sidste mange uger, kan du
ovenikøbet aflæse stien sådan her:

  $HOME=$_SERVER["DOCUMENT_ROOT"];
Avatar billede okkels Nybegynder
17. marts 2005 - 23:13 #4
Jeg er sikker på, at stierne er rigtige, så jeg tror nok nærmere det er fordi jeg ikke angiver dem absolut.

Erik, er det unix-stien til roden, jeg skal bruge? Og kan det i så fald ikke godt tænkes, at den ser ud som følger (jeg er hostet hos b-One):

/customers/ditdomæne/ditdomæne/httpd.www/  (hvor "ditdomæne" naturligvis er skiftet ud med rutinen, som mit domæne hedder)
Avatar billede erikjacobsen Ekspert
17. marts 2005 - 23:15 #5
Den ser rigtig nok ud - uden at vide det, da jeg ikke kender b-one.
Men ellers brug min sidste linie. En sjælden gang er PHP ikke sat op til at give den rigtige, men det vil så opdage ;)
Avatar billede okkels Nybegynder
17. marts 2005 - 23:29 #6
Den virker rigtig nok med dit lille trick - tak for det.

Men kan det virkelig passe, at jeg skal til at inkludere den lille $HOME-kommentar i alle mine php-filer - og at jeg derefter skal rette alle include-filer til?

Det er trods alt et halvstort arbejde, men hvis det er eneste udvej, må jeg jo på den...

Under alle omstændigheder, så takker jeg for hjælpen. Smid et svar for point.
Avatar billede erikjacobsen Ekspert
17. marts 2005 - 23:31 #7
Det er selvfølgelig nemmest hvis man gør det fra starten af. Jeg gør det altid ;)
Der er måske også andre måder....

Men jeg samler slet ikke på point, tak, så ingen svar fra mig.
Avatar billede okkels Nybegynder
17. marts 2005 - 23:34 #8
Ja, så forudseende var jeg desværre ikke. PHP er en (næsten) helt ny verden for mig - og alle de små tricks lærer man jo først hen ad vejen.

Men tak for hjælpen under alle omstændigheder - point eller ej.
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