Avatar billede strit Nybegynder
08. oktober 2007 - 00:52 Der er 11 kommentarer

Ændring af URL "dir" delen

Hej med jer

Først og fremmest, måske kan dette problem klares med andet end php, jeg skriver herinde da min kode er php.

Lad os sige, at jeg har en side på
rod.dk/index.php

På denne side er der på et tidspunkt et include af
rod.dk/album/main.php

Mit problem er nu, at der i main.php og mange andre underfiler hertil er flere steder med reletive links skrevet direkte i html, som f.eks.
<a href ="logon.php">logon</a>

Når dette link kommer frem index.php siden bliver det til:
rod.dk/logon.php

men skulle gerne blive til
rod.dk/album/logon.php

Altså skal linket virke relativt til den inkluderet fil, og ikke til filen der inkludere.

filerne under album er for mange og for store til at jeg kan ændre alle links i dem, så mit spørgsmål er, om der findes en måde hvorved jeg kan få disse links til at pege rigtigt.

- Strit
Avatar billede olebole Juniormester
08. oktober 2007 - 01:02 #1
<ole>

Ja, bruge absolutte stier  :)

/mvh
</bole>
Avatar billede miqe Nybegynder
08. oktober 2007 - 01:34 #2
Som Ole siger.
F.eks.
<a href ="/album/logon.php">logon</a>
Avatar billede strit Nybegynder
08. oktober 2007 - 09:16 #3
Ja det er et fint forslag, men som jeg skriver så er det ikke en brugbar løsning at skulle ændre alle links i albummet.
Jow jeg kan godt gøre det med lidt search and replace, men det vil være meget bedre med en smartere løsning, bl.a. fordi albumdelen kan komme ud i en ny udgave senere hen, hvor jeg så vil skulle ændret alt igen.
Avatar billede zurekk Nybegynder
08. oktober 2007 - 12:23 #4
Det skulle du jo have været forberedt på da du gik igang med scriptet :)

Kan du ikke lave en "cfg.php" som inkluderes i index, alle på en anden måde bliver inkluderet i alle filer, og så bruge variabler, eller define( 'sti', '/album/' );
Og så ændre den alt efter hvor man befinder sig på sitet.

Så bliver du godt nok nødt til at ændre i alle linksne, men det bliver jo så også sidste gang :)
Avatar billede strit Nybegynder
08. oktober 2007 - 12:50 #5
Zurekk: Jeg har overvejet din løsning, om måske bliver det den.
Grunden til at jeg ikke har tænkt over det før i scriptet er at "album" = phpalbum.net, altså et fint script som jeg ikke selv har skrevet.
Avatar billede zurekk Nybegynder
08. oktober 2007 - 13:00 #6
Men så forstår jeg ikke hvorfor der er problemer =/

Er det fordi du har ændret i opsætningen, eller virkede det ikke fra du købte/downloadede det?
Avatar billede strit Nybegynder
08. oktober 2007 - 13:23 #7
Det virker fint, hvis jeg tilgår albummet direkte, men da jeg gerne vil benytte det via include fra en anden side, så virker stierne ikke.
Avatar billede olebole Juniormester
08. oktober 2007 - 13:25 #8
Det kan godt være, du ikke synes, det er en brugbar løsning - men det er afgjort den bedste. Som det er nu, får du ikke andet end problemer ... både nu og senere, hvis du laver en lille ændring.
Search & replace behøver ikke tage ret lang tid - specielt ikke, hvis det gøres på mappe-niveau - og du får en langt bedre og mere robust løsning  ;o)
Avatar billede zurekk Nybegynder
08. oktober 2007 - 14:13 #9
ole >

Helt præcist hvilken af løsningerne snakker du om?

Fik jeg ikke lige fat i :)
Avatar billede olebole Juniormester
08. oktober 2007 - 14:27 #10
- fulde stier. Det var en kommentar til (08/10-2007 09:16:16)
Avatar billede zurekk Nybegynder
08. oktober 2007 - 15:00 #11
Ah okay :)

Men er det helt hen i vejret at bruge define() og/eller variabler til sådan noget?

Er selv halvt-ny indenfor php og hjemmeside-strukturer så det ville være rart at vide :)
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