Gå til innhold

Problemer med relative linker ved bruk av include


Anbefalte innlegg

Hei!

 

Min første post her, selv om jeg har lest en stund.. :)

 

Er rimelig fersk i php, så bær over med meg om det er et banalt spørsmål.

 

Saken er den at jeg holder på å skrive en side, i denne fasen ligger denne plassert under www/beta/ på ftpserver og altså www.adresse.com/beta/ i browseren.

 

jeg har en del bakgrunnsfiler som ligger lagret i www/beta/library/ - dette er filer som feks menyer, sidebarer, slettebrukerfiler og en del sånne ting.

 

for å gjøre det lettere å linke \ forandre linker når jeg skifter fra www/beta/ til bare www/, så har jeg laget en alias.php-fil hvor jeg har satt feks "$index = 'beta/'; $mainsidebar1 = 'library/main_sidebar1.php' etc - dette funket fint helt til filene jeg har liggende i library skal begynne å prate med hverandre, fordi da blir linkene feil (den finner ikke beta/library/library/) ..

 

noen som har noen tips til hvordan jeg får laget "relative" linker?

 

det jeg ser for meg er rett å slett at det må finnes en kommando som tar meg til det øverste nivået, og at jeg så bare kan legge inn /www/beta/ foran filene i /beta/ og /www/beta/library/ til filene i library...

Lenke til kommentar
Videoannonse
Annonse

hei, og takker for svar..

 

prøver å få til den set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );, men den hjelper meg vel egentlig ikke noe?

 

det jeg trenger er jo å få laget variablene sånn at de inneholder hele adressen til linken på en måte..

 

<?

$config = 'beta/library/config.php';

$opendb = 'beta/library/config.php';

$closedb = 'beta/library/closedb.php';

$index = 'beta/index.php';

$login = 'beta/library/login.php';

?>

 

når jeg da kjører <? include($config); ?> i index.php som ligger på rota funker det bra, men når jeg prøver å includere samme fila i login.php som ligger i library prøver den å åpne 'beta/library/beta/library/config.php'..

 

noen som har vært borti dette før?

Lenke til kommentar

Du brude ikke bruke short tags <? ?>. Grunnen av at det er de fleste webserverne ikke har short tags på, så bruke <?php ?> istede.

 

Edit: Kanskje du includere samme fil to ganger? Er ikke sikker...

Endret av dannyboy_1992_
Lenke til kommentar
Du brude ikke bruke short tags <? ?>. Grunnen av at det er de fleste webserverne ikke har short tags på, så bruke <?php ?> istede.

 

Edit: Kanskje du includere samme fil to ganger? Er ikke sikker...

 

 

heia, og takk, skal begynne å gjøre det...

 

problemet er at den kjører linken i fra directoriet den åpne filen er i.. så hvis jeg har en fil åpen fra library (feks login.php) så prøver den å hente linkene fra directory (www/beta/library/) + linkadressen (www/beta/library).. så blir dobbelt opp... feks i msdos hvis du er inn i sju mapper C:\windows\programfiler\adobe\photoshop\images\btk\ og vil til roota, skriver du bare CD \ ... finnes det ikke noe sånt i php?

Lenke til kommentar
problemet er at den kjører linken i fra directoriet den åpne filen er i.. så hvis jeg har en fil åpen fra library (feks login.php) så prøver den å hente linkene fra directory (www/beta/library/) + linkadressen (www/beta/library).. så blir dobbelt opp... feks i msdos hvis du er inn i sju mapper C:\windows\programfiler\adobe\photoshop\images\btk\ og vil til roota, skriver du bare CD \ ... finnes det ikke noe sånt i php?

 

Hvorfor ikke:

 

(variabelnavnene er selvfølgelig bare et eksempel)

 

$includeConfigInIndex = 'beta/library/config.php';

$includeConfigInLogin = '../../beta/library/config.php';

Lenke til kommentar
Det vanlige(?) er vel å bruke include dirname(__FILE__) . '/path/to/file.php';

 

Seff. Beklager mine dumheter. :blush:

 

hei -- dette er jo en måte å gjøre det på, men det vil jo bli mye mye arbeid da jeg har per i dag 40 forskjellige sider som alle skal bruke dette..

 

per nå så har jeg rett og slett gitt opp ideen om library og lagt alle filene i samme directory..

 

er det noen soleklare fordeler over å ha ting i ei egen library-mappe utenom at det blir oversiktelig?

Lenke til kommentar

define( 'ROOT_PATH', dirname( __FILE__ ) . "/" );
define( 'BASE_URL', "http://www.mittdomene.no/index.php" );

include ROOT_PATH . "file.php";
echo "<a href='{BASE_URL}?page=heihei'>Test</a>"; // Usikker på om konstanter fungerer i dette tilfellet

 

Ser ikke hvordan dette kan bli uoversiktlig/vanskelig. Så lenge du har dette i index.php, kan du bruke ROOT_PATH i filene du inkluderer.

Endret av M4rTiN
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...