Avatar billede bing89 Nybegynder
10. juni 2014 - 19:01 Der er 11 kommentarer og
2 løsninger

.htaccess, skjult pageid / menupunktsid og fleksibelmenu

Hej, jeg er ved at lære lidt om htaccess. Jeg har forstået de basale principper i brugen af det, men jeg har lige nogle spørgsmål..

Min problemstilling ligger i, når menuen hentes ud fra en database.

Skjult menupunkts id
Hvordan skjuler man id'et på et menupunkt fra databasen i url'en?

F.eks. har du en et menupunkt "Produkter" med id'et "2" i databasen. For at være sikker på at jeg henter det rigtige indhold til produktet, skal jeg have fat i id'et - da der jo kan være to menupunkter med samme navn..

Jeg vil gerne have url'en til at se sådan ud:

www.vovida.dk/produkter og ikke vovida.dk/2

Fleksibelmenu

Det jeg har lært med htaccess er, at der for hver url variabel, skal laves en ny 'RewriteRule'. Mit problem kommer når der er mulighed for en fleksibelmenu, med uendelige underpunkter.. Her kan jeg ikke vide, hvor langt ned i undermenuer vi kommer.

Hvad er/kan løsningen være her ?


Jeg håber at I forstår hvad jeg mener...

På forhånd tak.. :)
Avatar billede HBP2 Praktikant
10. juni 2014 - 22:49 #1
Hvad med at droppe alt det forfærdelige htaccess/server opsætning, og gør ligesom 99% af alle andre: overfør IDer, variable osv i POST data.
Avatar billede bing89 Nybegynder
11. juni 2014 - 08:01 #2
Hvordan vil du få en URL ud af det som hedder Vovida.dk/produkter?
Avatar billede jakobdo Ekspert
11. juni 2014 - 09:07 #3
Ideen med at lave produkter = id = 2 ?

Altså:

vovida.dk/produkter og den så rent teknisk henter produkt_id = 2 eller alle produkter med id = 2.

Det vil kræve produkter skal være unikt.
Så at oprette 2 menuer med samme navn:

produkt1 = produkt_id = 1
produkt1 = produkt_id = 2

Så vil det ikke give mening.

"nøglen" = produkt1 skal være unik.
Og man ønsker produkt frem for id=1, da det er mere søgemaskine venligt.
Avatar billede bing89 Nybegynder
11. juni 2014 - 15:47 #4
jakobdo -

Ikke helt sådan, det var nok et dårligt eksempel jeg kom med :)

Det giver ikke nogen mening at have to hovedpunkter i menuen, som hedder det samme - det har du helt ret i..

Men hvis vi tager udgangspunkt i en sportsside i stedet for...

Menuen og underpunkterne kommer fra en database.

Så har vi hovedpunkterne 'Rugby' og 'Fodbold'.. De kan jo så hver have underpunkterne 'Ligaer' & 'Danmark', altså:

Rugby->Ligaer->Danmark

Fodbold->Ligaer->Danmark

Her ville jeg så have at min urler ser sådan ud:

rugby/ligaer/danmark

fodbold/ligaer/danmark

Men for at vide hvilke ligaer jeg skal hente ud (om det er danske rugby ligaer eller fodbold ligaer), skal jeg jo have fat i 'id'et' på menupunktet. Men hvordan får jeg det, uden at skrive det i url'en ?
Avatar billede jakobdo Ekspert
11. juni 2014 - 15:52 #5
Du har jo netop det unikke i dine url'er...

rugby/ligaer/danmark -> Rugby er unikt!

fodbold/ligaer/danmark -> Fodbold er unikt!

Så der skal du "bare" lave noget kode, der finder

SELECT sideinfo FROM sider WHERE tag = fodbold and tag = liga and tag = danmark-agtigt. :o)
Avatar billede bing89 Nybegynder
11. juni 2014 - 15:59 #6
Ja :), jeg kom også til at tænke på det lidt efter jeg havde sendt den - at det var et ret dumt spørgsmål :) Men tak for dit venlige svar alligevel :)


Kender du også svaret på mit andet spørgsmål?
Avatar billede jakobdo Ekspert
11. juni 2014 - 16:08 #7
Det ved jeg faktisk ikke rigtigt.
Men du bliver vel også nød til at styre det?

/fodbold/
skal vel vise noget andet end:
/fodbold/ligaer/danmark/

osv ?
Avatar billede bing89 Nybegynder
11. juni 2014 - 16:19 #8
Hvad mener du med, at jeg skal styre det ? At jeg skal sætte en begrænsning på eller?
Avatar billede jakobdo Ekspert
11. juni 2014 - 20:17 #9
Det jeg mener...
Hvordan skal denne side vises:

/fodbold/

Hvordan skal denne vises:

/fodbold/ligaer/

Hvordan skal denne vises:

/fodbold/ligaer/danmark/

Er det sider på præcist samme niveau i dit system eller ?
Avatar billede bing89 Nybegynder
11. juni 2014 - 20:53 #10
Nej, det er ikke sidder på samme nivaue.. Men i teorien, så ville man på en nyhedsside, kunne lave mange nivauer, som viser samme side, med samme udseende..


Hvis jeg tillader ham at lave alle de nivauer han vil:

menuID | titel            | parentID
1          | Sport          | 0
2          | Fodbold      | 1
3          | Danmark      | 2
4          | Superligaen  | 3
5          | Hold fra fyn  | 4
6          | OB              | 5

osv.

Alle links henter nyheder ud fra dens kategori eller den childrens, og designet er det samme.. Altså kan han blive ved i undeligheder.. Selvfølgelig får man ikke brugeren derned, men det er muligt..
Avatar billede bing89 Nybegynder
11. juni 2014 - 20:54 #11
Du må forresten gerne smide et svar, til den første del :)
Avatar billede jakobdo Ekspert
11. juni 2014 - 21:47 #12
Problemet er jo netop dit "unikke" problem.
Hvis nu alle elementer var unikke, så kunne du jo tage den "sidste".

OB = id 6

Danmark = id 2

Men hvis rugby/danmark og fodbold/danmark kan forekomme, så har du problemet.

Men ærligt, jeg ved ikke lige hvordan man kan løse det smart.

Men du får et svar til del 1. :o)

Opret evt. et nyt spørgsmål og spørg specifikt. Det er jo meget apache / htaccess / mod_rewrite relateret.
Avatar billede bing89 Nybegynder
11. juni 2014 - 21:56 #13
Det vil jeg prøve :).. Mange tak for hjælpen..
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
Kurser inden for grundlæggende programmering

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