Avatar billede lordhead Nybegynder
06. august 2003 - 12:19 Der er 26 kommentarer og
1 løsning

require og include skal angive den absolutte sti

Hej eksperter.

Er der nogen der ved hvordan jeg angiver den absolutte sti i <?php include() ?> og <?php require() ?> ?
Avatar billede exp Juniormester
06. august 2003 - 12:29 #1
<?php include('http://domain.dk/absolut/sti/til/fil.php'); ?>

det samme med require...
Avatar billede lordhead Nybegynder
06. august 2003 - 12:33 #2
Hvad nu hvis jeg vil bruge stier som <?php include('/include/include.php') ?>
Avatar billede tipsen Nybegynder
06. august 2003 - 12:34 #3
include $_SERVER['DOCUMENT_ROOT'] . '/lokalfolder/lokalfil.php';

Bemærk at $_SERVER['DOCUMENT_ROOT'] indeholder et trailing slash (/) hvis det er linux, men ikke på windows (eller er det omvendt?)
Avatar billede lordhead Nybegynder
06. august 2003 - 12:35 #4
hvad hvis det er unix
Avatar billede lordhead Nybegynder
06. august 2003 - 12:40 #5
exp>> dit eksempel virker ikke!
Avatar billede exp Juniormester
06. august 2003 - 12:43 #6
Virker mit ikke? Det burde det da... hmm...
Avatar billede lordhead Nybegynder
06. august 2003 - 12:44 #7
Jeg ved ikke hvad det burde gøre - jeg konstatere at det ikke virker :)
Avatar billede tipsen Nybegynder
06. august 2003 - 12:47 #8
Brug følgende kodestump i starten af scriptet:

// basedir benyttes til at pege på roden af websitet til hjælp for bl.a. SPAW og andre elementer
$basedir = $_SERVER['DOCUMENT_ROOT'];
// Linux doesn't return the path with a trailing slash but windows does - this fixes the path
if (substr($basedir, -1) != '/') {
    $basedir .= '/';
}

Derefter:

include $basedir . 'include/include.php';

exp: At angive url'en har ikke noget med absolut sti at gøre - den metode bør man ikke bruge, med mindre det er en fil, som ikke er tilgængelig via det lokale filsystem - dvs. eksempelvis hvis filen ligger på en anden server.
Avatar billede tipsen Nybegynder
06. august 2003 - 12:47 #9
exp: Derudover forudsætter det til at url_fopen_wrappers er enablet, hvilket langt fra altid er tilfældet!
Avatar billede exp Juniormester
06. august 2003 - 12:50 #10
det er jo self rigtigt :-)
Avatar billede tipsen Nybegynder
06. august 2003 - 12:53 #11
lordhead: Se bare bort fra mine kommentarer til kodestumpen - de giver vist ikke alle så meget mening (for andre end mig)
Avatar billede lordhead Nybegynder
06. august 2003 - 12:55 #12
Det virker slet ikke!
Avatar billede tipsen Nybegynder
06. august 2003 - 12:58 #13
Prøv at give lidt mere end "det virker ikke"
Avatar billede lordhead Nybegynder
06. august 2003 - 13:07 #14
Jeg sagde heller ikke "Det virker ikke" men "Det virker slet ikke!" !-)

Ej... jeg satte den kode ind som du viste, med et <?php foran og et ?> bagefter!

Desuden fjernede jeg  "Derefter:"
Avatar billede tipsen Nybegynder
06. august 2003 - 13:18 #15
Hvilken fejlmeddelelse får du?
Avatar billede tipsen Nybegynder
06. august 2003 - 13:18 #16
og hvad indeholder $basedir?
Avatar billede lordhead Nybegynder
06. august 2003 - 13:31 #17
Hvad mener du med "hvad indeholder $basedir?" ?

Jeg har som sagt kopieret din kode ind.
Avatar billede tipsen Nybegynder
06. august 2003 - 13:35 #18
Hvad indeholder variablen $basedir efter første del af koden er afviklet?

Og hvis det ikke fungerer, må der komme en fejl!?

Grunden til at jeg skriver at "det virker ikke" er utilstrækkelig information er at jeg bruger samme teknik på en stak hjemmesider, som kører på både linux og windows og derfor ved jeg det virker og vi skal derfor finde årsagen til at det ikke virker hos dig!
Avatar billede lordhead Nybegynder
06. august 2003 - 13:57 #19
jeg har jo også sagt at jeg benytter unix ...
Avatar billede tipsen Nybegynder
06. august 2003 - 14:12 #20
OK, hvis du bruger unix, så virker php nok ikke.
Avatar billede lordhead Nybegynder
06. august 2003 - 14:34 #21
lol... selvfølgelig gør det det... det er bare det her med den absolutte sti jeg ikke kan få til at funke som det skal!
Avatar billede tipsen Nybegynder
06. august 2003 - 15:06 #22
Og jeg kan ikke hjælpe dig, hvis du ikke besvarer mine spørgsmål, men blot gentager at "du benytter unix"...
Avatar billede nicklasb Nybegynder
06. august 2003 - 15:32 #23
prøv nu at skriv hvad basedir indeholder (altså printe det ud, og så kopiere det herind).. Det ville gøre det en HEL del lettere at finde ud af hvad problemet kunne være.. !
Avatar billede lordhead Nybegynder
06. august 2003 - 18:17 #24
Jeg forstår ikke hvad i mener med at jeg skal printe den ud osv. men her er linket til siden hvor der ikke bliver includeret: http://www.rda.frac.dk/default.php
Avatar billede tipsen Nybegynder
06. august 2003 - 18:26 #25
Det tog kun 6 timer at få en brugbar fejlmelding og 10 sekunder at rette fejlen:

// basedir benyttes til at pege på roden af websitet til hjælp for bl.a. SPAW og andre elementer
$basedir = $_SERVER['DOCUMENT_ROOT'];
// Linux doesn't return the path with a trailing slash but windows does - this fixes the path
if (substr($basedir, -1) != '/') {
    $basedir .= '/';
}

Derefter:

include $basedir . 'rda/include/include.php';
Avatar billede tipsen Nybegynder
06. august 2003 - 18:28 #26
Selvom du ikke vidste hvordan du printede værdien af variablen $basedir ud (forøvrigt bare: echo $basedir;), så kunne sætningen "Og hvis det ikke fungerer, må der komme en fejl!?" vel ikke tolkes anderledes end at jeg var interesseret i den fejlmeddelelse der måtte komme fra php? ;-)
Avatar billede lordhead Nybegynder
06. august 2003 - 18:30 #27
Det må jeg sige :) tak for hjælpen!

Jeg ved heller ikke hvad jeg havde i tankerne, men det er da løst *GG*

Tak for hjælpen endnu engang..
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