Avatar billede wormsk8 Nybegynder
13. marts 2009 - 19:42 Der er 5 kommentarer og
1 løsning

Omskrivning "include"-kode.

Hej Eksperter,

Er lidt en nød til php, men har dette script:
<code><?
$side = $_GET[work];
if($side==NULL){ $side = "work"; }
$side .=".php";
if(file_exists($side))
{
include($side);
}
else
{
include("blog.php");
}
?></code>

Som jeg gerne vil ha' skrevet om, så jeg kan bruge følgende links <a href="side.(html eller php)" title="">Link</a> i stedet for <a href="./?s=side.php" title="">Link</a>. Skal bruge det til en opgave jeg er igang med, hvor html siderne er skrevet med links osv..

Håber der er en venlig sjæl derude, med pulsen på PHP der kan hjælpe.

God Weekend,
Kasper
Avatar billede Slater Ekspert
13. marts 2009 - 21:28 #1
Det kan ikke umiddelbart lade sig gøre på den måde. Hvis du skriver domæne.dk/side.html i browseren (eller klikker på et link til det), vil den forsøge at læse filen side.html - du kan ikke sidde i index.php og læse det som en query-string.

Du har to muligheder for at lave det sådan: enten ved brug af url-rewriting, en teknik jeg netop har snakket lidt om her: http://www.eksperten.dk/spm/867528
- Eller du kan lave alle de filer du skal bruge, og fra dem alle inkludere en fælles php-fil, hvor al din kode foregår. Det betyder bare at du kun kan bruge .php endelsen, og ikke html, og det virker kun hvis du har et rimelig overskueligt antal mulige sider.

I sidstnævnte tilfælde ville alle undersiderne så indeholde:
"<?php include ('common.php');"
- og ikke andet.
Alt siden foretog sig, inklusiv design og html, ville så ligge i common.php
Avatar billede wormsk8 Nybegynder
14. marts 2009 - 00:56 #2
@viperine

Bruger overstående kode til at inkluderer mine undersider. Linker således: <a href="./?side=____">tekst</a>. Har prøvet at lege med det der .htacces du har skrevet i den anden tråd. Har ændret i det, i håb om at få det til at virke på min side:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule (.*)$ ?side=$1 [L]

men det virker ikke, kan du hjælpe?

tak!
Avatar billede Slater Ekspert
14. marts 2009 - 01:14 #3
Selvfølgelig. Først og fremmest: .htaccess virker kun hvis serveren er Apache. Er du sikker på det? Derudover skal mod_rewrite være slået til, men det er den på langt de fleste Apache-webhoteller.

For det andet er du kommet til at skrive ".htacces" med et "s" for lidt. Jeg ved ikke om det kun var en slåfejl her, men tjek lige stavningen for en sikkerheds skyld.

For det tredje skal du lige nævne filen i din RewriteRule.
RewriteRule (.*)$ ?side=$1 [L]
Skal ændres til
RewriteRule (.*)$ index.php?side=$1 [L]
- Bare rolig, du vil ikke komme til at se "index.php" nogle steder når du bruger siden.

Tjek lige disse ting og meld tilbage. Og så er jeg ellers på vej i seng for i dag :)
Avatar billede wormsk8 Nybegynder
14. marts 2009 - 01:25 #4
Fedt det virker, tak for det.

Håber det virker på kundens b-one webhotel, men det finder jeg ud af i morgen :)

Tak for det, smid svar og hop i seng :)
Avatar billede Slater Ekspert
14. marts 2009 - 10:46 #5
Så gerne :)
Avatar billede wormsk8 Nybegynder
14. marts 2009 - 11:42 #6
Tak for hjælpen, det var storartet!
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