/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
God idé til metode af link session
Fra : Martin


Dato : 19-03-06 06:44

Hejsa

Jeg mangler en god idé til en metode af hvordan jeg kan styre mine links.

Problemstillingen:
Jeg har et site, hvor der er 3 forskellige temaer.
Hvert tema har sin egen CSS og design.
Dog bruger alle temaer de samme php filer, fx nyheder, about osv.

Hvis man bare skriver www.domæne.dk så sætter den default tema til at
være 1, via
if(!isset($_SESSION["theme"])) $_SESSION["theme"] = tema1;

Men nu er problemet så at Hr.Person trykker en på tema nr 2 og ser dens
design, og vil så gerne sende linket videre til Fr.Person, som så åbner
linket i browseren, men ser så selvfølgelig default tema.

Hvordan kan det styres nemmest muligt.

Jeg har tænkt på 2 forskellige metoder
den "nemme" at sende en variabel via get hele tiden, det synes jeg bare
ikk er særlig optimalt for mig som koder.

Den anden kunne være sjov - www.domæne.dk/tema1/nyheder.php
www.domæne.dk/tema2/nyheder.php

Dog ved jeg ikke hvordan den sidste metode skulle kunne laves, da alle
php filer ligger i roden (altså www.domæne.dk/nyheder.php)

Er der en anden metode jeg har overset?
Eller er jeg gået helt galt i byen?

PS: Ved ikke om den høre til i php eller apache gruppen, så jeg har
krydspostet den.

 
 
Dennis Hansen (19-03-2006)
Kommentar
Fra : Dennis Hansen


Dato : 19-03-06 08:06

Martin skrev Den. 19-03-2006 06:44:

> Den anden kunne være sjov - www.domæne.dk/tema1/nyheder.php
> www.domæne.dk/tema2/nyheder.php
>
> Dog ved jeg ikke hvordan den sidste metode skulle kunne laves, da alle
> php filer ligger i roden (altså www.domæne.dk/nyheder.php)

Hvis du bruger apache med mod_rewrite aktiveret så kan du nok klare
den med noget ala
RewriteRule /tema(.*)/nyheder/(.*)/ /nyheder.php?tema=$1&page_id=$2

Jeg går ud fra at du også vil lave det på nyhedsid'et nu hvor du er i
gang.


/tema21/nyheder/25/
lander på siden
/nyheder.php?tema=21&page_id=25

Martin (19-03-2006)
Kommentar
Fra : Martin


Dato : 19-03-06 08:55

Dennis Hansen wrote:
> Hvis du bruger apache med mod_rewrite aktiveret så kan du nok klare
> den med noget ala
> RewriteRule /tema(.*)/nyheder/(.*)/ /nyheder.php?tema=$1&page_id=$2
>
> Jeg går ud fra at du også vil lave det på nyhedsid'et nu hvor du er i
> gang.
>
> Så
> /tema21/nyheder/25/
> lander på siden
> /nyheder.php?tema=21&page_id=25

Den metode havde jeg skam tænkt på :)

Mit problem ligger i når jeg begynder at sende variabler rundt med get,
så skal alt jo skrives ind i rules.

Jeg havde tænkt på at lave noget ala

RewriteRule /tema(.*)/(.*) /$2&tema=$s1

men hvad så hvis der ikke sendes nogen variabler fra siden, så kommer
strengen til at se sådan her ud
/nyheder.php&1 - og det er jo ikke så godt :(
Kan det løses på nogen måder?

Så hvis /nyheder.php bliver til /nyheder.php?tema=1 og
nyheder.php?id=1&tema=1

Michael Zedeler (19-03-2006)
Kommentar
Fra : Michael Zedeler


Dato : 19-03-06 09:37

Martin wrote:
> Jeg havde tænkt på at lave noget ala
>
> RewriteRule /tema(.*)/(.*) /$2&tema=$s1
>
> men hvad så hvis der ikke sendes nogen variabler fra siden, så kommer
> strengen til at se sådan her ud
> /nyheder.php&1 - og det er jo ikke så godt :(
> Kan det løses på nogen måder?

Selvfølgelig kan det det.

Enten kan du bruge betingede omskrivningsregler til at gøre det med.

Se http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond

Eller også kan du stoppe det direkte ind i reglerne:

RewriteRule /tema(.*)/([^\?]*)\??$ /$2?tema=$1

Omskriver

/tema<streng1>/katalog1/katalog2/enfil.php

til

/katalog1/katalog2/enfil.php?tema=<streng1>

og

/tema<streng1>/katalog1/katalog2/enfil.php?

til

/katalog1/katalog2/enfil.php?tema=<streng1>

RewriteRule /tema(.*)/([^\?]*\?.+) /$2&tema=$1

Omskriver

/tema<streng1>/katalog1/katalog2/enfil.php?forskellige=parametre&som=skalmed

til

/katalog1/katalog2/enfil.php?forskellige=parametre&som=skalmed&tema=<streng1>

Med forbehold for fjel og mganlre.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Christian Joergensen (19-03-2006)
Kommentar
Fra : Christian Joergensen


Dato : 19-03-06 11:00

Martin <news@natten-i.dk> writes:

> > Hvis du bruger apache med mod_rewrite aktiveret så kan du nok klare
> > den med noget ala
> > RewriteRule /tema(.*)/nyheder/(.*)/ /nyheder.php?tema=$1&page_id=$2

> Den metode havde jeg skam tænkt på :)
>
> Mit problem ligger i når jeg begynder at sende variabler rundt med
> get, så skal alt jo skrives ind i rules.

Du sender bare den oprindelige QUERY_STRING med:

RewriteRule /tema(.*)/nyheder/(.*)/ /nyheder.php?tema=$1&page_id=$2&%{QUERY_STRING}

--
Christian Joergensen | Linux, programming or web consultancy
http://www.razor.dk | Visit us at: http://www.gmta.info

Peter Makholm (19-03-2006)
Kommentar
Fra : Peter Makholm


Dato : 19-03-06 11:40

Martin <news@natten-i.dk> writes:

> Jeg havde tænkt på at lave noget ala
>
> RewriteRule /tema(.*)/(.*) /$2&tema=$s1
>
> men hvad så hvis der ikke sendes nogen variabler fra siden, så kommer
> strengen til at se sådan her ud

Se på QSA-flaget til RewriteRule.

--
Peter Makholm | Det sae banken osse: Hvis du overhovet vil have noen
peter@makholm.net | glæde af din fremtid ska du ikke vente til i morgen.
http://hacking.dk | -- Divus, 2004-10-26

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste