Oprettet tir. d. 10. marts 2009 kl. 20:33:08

cronck
cronck (12.117 point. Point ude: 595)

Query-string / / refererer til DB ?

Hej eksperter,

Jeg har undret mig en lille smule over hvordan man laver følg. på ens side:
http://da.wikipedia.org/ (...)

Jeg går udfra at Wikipedia slår "Vin" op i en database eller lign?

Hvordan kan jeg lave noget som fungere på samme måde?

Skrevet tir. d. 10. marts 2009 kl. 20:41:41| #1

viperine
viperine (35.213 point)
www.amunium.dk
Det er lavet med url-rewriting på serveren. For at kunne fortælle dig mere om det, er jeg lige nødt til at vide:

- Kender du til at bruge query strings normalt? Altså kan du godt finde ud af at hente en artikel der hedder "vin" ud fra en database, hvis du får url'en: artikel.php?artikel=vin ?

- Hvilken server har du eller dit webhotel? Hvis du ikke ved det, ved du så hvilket OS den kører? Windows/Linux?

Skrevet tir. d. 10. marts 2009 kl. 20:45:55| #2

cronck
cronck (12.117 point)
Bruger DomainDirect.dk. Tror at de kører Unix.

Ja, er vant til at behandle query-strings.

Har bare spekuleret her idag, over hvordan man laver det smartest som det for eks. er her på Exp, eller for den sags skyld Wikipedia.

Tænkte at det var en mulighed at "splitte" hele adresse-feltet ad, men vidste ikke om der fandtes bedre/smartere muligheder. :)

Skrevet tir. d. 10. marts 2009 kl. 20:57:38| #3

viperine
viperine (35.213 point)
www.amunium.dk
Ja, jeg har også et par Domandirect sider. God host. De kører med Linux og Apache - og det betyder også at du kan bruge .htaccess til at lave den effekt relativt nemt.

Først skal du oprette en fil der hedder ".htaccess" - ja, med punktum først. Den kan være lidt tricky at oprette i Windows, da den ikke er særlig glad for filnavne der starter med punktum, men i værste fald kan du kalde den noget andet, og så omdøbe den efter du har smidt den op på FTP'en. Den skal ligge i roden af dit webhotel (dvs. inde i htdocs-mappen)

I den fil skriver du f.eks.:

RewriteEngine On

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

RewriteRule (.*)$ index.php?q=$1 [L]

-- Så vil serveren viderestille alle sider til din index.php, og smide stien ind i ?q=

F.eks. hvis du går ind på http://www.ditdomæne.dk/ (...) - så vil serveren skrive det om, så du i virkeligheden går ind på http://www.ditdomæne.dk/ (...)
Derfra er det rimelig nemt at ændre det til dit behov.

Du kan også søge på "mod_rewrite" på Google - der er masser af tutorials og artikler om hvordan du kan bruge det.

Skrevet tir. d. 10. marts 2009 kl. 21:14:52| #4

cronck
cronck (12.117 point)
Ahh...

Det er jo skide smart :D

Havde som sagt forestillet mig at jeg skulle hive hele querystring'en ind og splitte den ad.
Kan dog se at det kan gøres langt mere simpelt. :)

For lige at være helt sikker - http://www.domæne.dk/ (...)

Ville den så automatisk smide de 2 nye værdier ind som hvis det var index?cmd=0&dyr=hest ?

Du må gerne smide et svar, da der i vikeligheden er nok her til at jeg selv kan arbejde videre.

I øvrigt, god stil at du forklarede hvordan .htacces kan oprettes osv.
Vidste det udemærket i forvejen, men hvis andre en dag søger herind og netop ikke har erfaring med det, ville det være meget nemmere for dem. :)

Skrevet tir. d. 10. marts 2009 kl. 21:23:10| #5

viperine
viperine (35.213 point)
www.amunium.dk
Det jeg skrev dér var en simpel version - den tager bare alt du skriver efter domænet, og smider det ind som querystring.

Hvis du skrev domæne.dk/fisk?cmd=0&dyr=hest ville det blive til domæne.dk/index.php?q=fisk?cmd=0&dyr=hest - ikke specielt hensigtsmæssigt.
- Hvis du vil lave muligheder for at smide flere variabler ind, kan du enten skrive regexp'et i RewriteRule om, eller du kan bare lave dit eget system og så dele det op i PHP, f.eks. med explode() funktionen :)

Skrevet tir. d. 10. marts 2009 kl. 21:27:29| #6

cronck
cronck (12.117 point)
Simpelt kan sommetider være nok :)

Jeg tror jeg i første omgang vil google mig frem til nogen flere eksempler, inden jeg tager det i brug.

Havde bare ingen idé om hvad man kaldte dette "trick" :)

Skrevet ons. d. 11. marts 2009 kl. 07:53:17| #7

jensgram
jensgram (39.129 point)
www.jensgram.dk
http://www.domæne.dk/ (...)

kan blive til

http://www.domæne.dk/ (...)

hvis du ændrer

RewriteRule ^.*$ - [NC,L]

til

RewriteRule ^.*$ - [L,QSA]

QSA = Query String Append

Desuden er der intet behov for No Case på "."

Skrevet ons. d. 11. marts 2009 kl. 07:54:17| #8

jensgram
jensgram (39.129 point)
www.jensgram.dk
Og det var naturligvis http://www.ditdomæne.dk/ (...) i stedet :)

Er imidlertid blevet i tvivl om, hvorvidt det er det, du spørger om.

Skrevet ons. d. 11. marts 2009 kl. 19:30:00| #9

cronck
cronck (12.117 point)
Ved nærmere eftertanke, er det slet ikke sikkert at det behøver at blive anderledes end det første eksempel til mit nuværende projekt, som gav http://www.ditdomæne.dk/ (...) :)

Det sidste jeg mente, var om man på en simpel måde kunne tilføje flere parametre efter /fisk , som for eks. ved at kalde /fisk&cmd=100 der skulle ende med at køre /index.php?q=fisk&cmd=100 :)

Skrevet tor. d. 12. marts 2009 kl. 00:19:41| #10

cronck
cronck (12.117 point)
Hvis I stadig vil give en hånd med på trods af at spørgsmålet er lukket, ville jeg være dybt taknemmelig. :D

RewriteEngine on
RewriteRule (.*)/$(.*)/ index.php?page=$1&id=$2
RewriteRule (.*)/$(.*) index.php?page=$1&id=$2

"article/240/" istedet for "index.php?page=article&id=240"

Så får jeg følg. output:
$_GET['page'] = "article/240"
$_GET['id'] = "" / NULL

Kan I sige hvad jeg har gjort galt?

Begge dele må i øvrigt gerne kunne indeholde tal og bogstaver.

Skrevet tor. d. 12. marts 2009 kl. 00:31:30| #11

cronck
cronck (12.117 point)
Har selv fundet ud af det. :)

Skrevet tor. d. 12. marts 2009 kl. 14:17:39| #12


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger