Avatar billede EveryMA Mester
08. november 2011 - 12:19 Der er 6 kommentarer og
1 løsning

?=Navn-paa-artikel - IKKE ?id=50

Hej.
Kender ikke helt til systemet, så kunne ikke lige finde på et andet emne :)

Jeg har en side som bringer nyheder hver dag igennem min MySQL database forbundet med ASP.
Indtil nu har jeg altid benyttet mig af et link f.eks.: default.asp?id=50
- dermed; select * from xx where id = " & request.querystring("id") & "

Jeg har i mit tidligere spørgsmål herinde fået at vide, at det ikke er en god metode hvis man ønsker at få forbedret sine søgeresultater på nettet.

Derfor spørger jeg nu hvordan man laver så linket istedet bliver til: /Navn-paa-artikel

Jeg kan ikke gennemskue det selv, da der muligvis kan opstå 2 artikler med samme navn, og samtidig er der ikke bindestreg (Hvilket man vel kan fjern med ASP-kode) i de nyheder der oprettes.

Nogen der kan lægge ud med noget? Eventuelt link til hvordan det gøres, eller skrive noget tekst?
Avatar billede niklask Nybegynder
08. november 2011 - 12:28 #1
Jeg aner ikke hvordan man gør i ASP, kun i ASP.NET.
Det kaldes Routing:
http://msdn.microsoft.com/en-us/library/cc668201.aspx
Avatar billede keysersoze Guru
08. november 2011 - 12:29 #2
Først og fremmest så skriver du forhåbentlig ikke din SQL som angivet - det åbner for SQL Injection og du risikerer dermed utilsigtet manipulering af dine data. Læs mere her; http://www.web-dev.dk/post/SQL-injections-mere-end-bare-et-pling.aspx

Omkring dit egentlige spørgsmål er der en artikel her; http://www.web-dev.dk/post/Pc3a6n-brugervenlig-og-sc3b8gemaskinvenlig-URL-med-ASP.aspx
Avatar billede keysersoze Guru
08. november 2011 - 12:31 #3
hvis der kan ligge flere artikler med samme navn og du ikke kan gøre det "ulovligt" må du føre ID med i URL'en, fx /artikelnavn/id eller /artikelnavn_id.
Avatar billede EveryMA Mester
08. november 2011 - 12:42 #4
Quick-question;

Det link du linkede til SQL-Injection, er det ASP.Net?

Cmd.CommandText = "SELECT navn FROM [product] WHERE [id] = @id"
Cmd.Parameters.Append(Cmd.CreateParameter("@id", 3, 1, 50, Request.Querystring("id")))

Med @ , og 3,1,50...

--
Skal lige læse på det andet link du sendte mig - jeg takker.
Avatar billede keysersoze Guru
08. november 2011 - 13:10 #5
Det er klassisk ASP.
Avatar billede EveryMA Mester
11. november 2011 - 09:31 #6
keysersoze smid et svar.

Fik det til at fungere med hjælp fra den artikel du henviste til, samt lidt Google-search :)
Avatar billede keysersoze Guru
12. november 2011 - 00:16 #7
svar :)
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