Avatar billede jens_32 Nybegynder
16. juni 2006 - 22:14 Der er 18 kommentarer og
1 løsning

http://www.xxx.dk/sideindhold.asp?sideid=812&sprogid=1

Jeg har en hjemmeside, som jeg gerne skulle lave nogle ændringer på selv. Jeg har imidlertid fundet ovenstående linie et sted i koden. Nogen der kan bringe mig på sporet af, hvad der sker der?
Avatar billede Slettet bruger
16. juni 2006 - 22:37 #1
tjae... det er formentlig de querystrings som du mener... querystrings er de værdier som kommer efter spørgsmålstegnet i denne linie...
de bruges sikkert begge to til et databaseopslag - hvor "sideid" er id´en på det som skal slåes op i databasen under et "sprogid"...

\Dan
Avatar billede jens_32 Nybegynder
16. juni 2006 - 22:42 #2
Ok, men vil det sige at der skal være en fil, som hedder sideindhold.asp?
Avatar billede keysersoze Ekspert
16. juni 2006 - 23:06 #3
ja
Avatar billede jens_32 Nybegynder
16. juni 2006 - 23:09 #4
Det der skal ske (er jeg ved at blive klog på) er, at afhængig af sideid skal sideindhold.asp vise forskellige html sider afhængig af, hvor der vælges i træstruktur menuen.

Hvordan skal indholdet f.eks. se ud i sådan en asp fil?
Avatar billede Slettet bruger
16. juni 2006 - 23:16 #5
- det er ikke nødvendigvist helt korrekt... der behøver faktisk slet ikke at være nogle html-filer... det kan sagtens bare være ren asp, som så bare har et html-output.

hvis "sideid" og "sprogid" bruges til databaseopslag er det sikkert kriterierne til tabellen i databasen. Sådan at det er den rigtige række der bliver fundet på den rigtige side...

\Dan
Avatar billede jens_32 Nybegynder
16. juni 2006 - 23:20 #6
Har du et eksempel på sådan en .asp fil?
Avatar billede keysersoze Ekspert
16. juni 2006 - 23:36 #7
<%
If Request.Querystring("sideid") = "812" Then
  Response.Write "noget"
Elseif Request.Querystring("sideid") = "813" Then
  Response.Write "noget andet"
Else
  Response.Write "noget tredie"
End If
%>

Generelt kan du nok lære en masse af sådanne begynder-ting her; http://activedeveloper.dk/articles/ - http://www.html.dk/tutorials/asp/
Avatar billede Slettet bruger
16. juni 2006 - 23:38 #8
ja...
- opret en mappe som hedder "test" på dit webhotel eller din webserver (hvis det er en webserver du selv har, skal du oprette mappen "test" i din root-folder).
- i mappen "test" opretter du en access-database som hedder "data" og den har selvfølgelig ".mdb" som extension.
- i databasen "data.mdb" opretter du en tabel som hedder "test" den skal have en kollenne som hedder "id" som primærnøgle og så en anden kollonne som hedder "indhold" som har formatet "Tekst".
- prøv så at indskrive et par poster i din tabel, hvor du blot bare skriver ét eller andet i kollonnen "indhold".
- nu vil du kunne se at kollonnen "id" automatisk får numre, og det første hedder "1".
- så laver du en asp-fil i samme mappe som hvor databasen er. Denne asp-fil kan du også bare kalde for "test.asp" og den skal så ligge i mappen som også hedder "test".

- i denne asp-fil indsætter du nedenstående kode:
<html>
<body>
<%
id = request.querystring("id")
if (id<>"" AND isnumeric(id)) then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= & server.mappath("data.mdb")
set rs = Conn.execute("select * from test where id=" & id & "")
if NOT rs.EOF then
response.write rs("indhold")
else
response.write "Intet indhold blev fundet på pågældende kriterier!"
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
else
response.write "id er ikke tilstede eller også er det ikke et tal!"
end if
%>
</body>
</html>



- og til sidst så prøv at gå ind på din asp-fil via din browser og skriv så:
http://www.xxx.dk/test/test.asp?id=1
i din adresselinie... så burde der komme noget indhold frem fra databasen - og hvad mon så der sker hvis du skriver 2 i stedet for 1?


Det skal lige siges at dette blot er et simpelt eksempel som kan illustrere nogle af de fantastiske muligheder der ligger i dette her...

\Dan
Avatar billede jens_32 Nybegynder
17. juni 2006 - 00:19 #9
Dejlige eksempler. Det ser ikke umiddelbart ud til at virke, men jeg kører det også bare fra mit skrivebord. Det er måske nødvendigt at lægge filerne op på webserveren, før det virker?

Hvad er forresten afgørende for, hvilken fil der startes op med når webbet starter. Normalt har jeg altid kun set at en hjemmeside starter med index.html. Hvor sikrer man at den starter med indhold.asp istedet?
Avatar billede Slettet bruger
17. juni 2006 - 00:57 #10
Ja! Det er nødvendigt at en asp-fil bliver lagt på en webserver som understøtter asp for at en asp-fil virker! Dette kunne være på et webhotel, det kunne være på din egen server eller hvis du bare vil teste scriptet kan du også installere IIS på din egen computer, hvis du fx. har Windows XP pro installeret.

Det er i min verden bestemt IKKE normalt at en hjemmeside starter med index.html.
Normalt kan du for eksempel i stedet starte med default.asp på et webhotel for eksempel...

\Dan
Avatar billede jens_32 Nybegynder
17. juni 2006 - 09:47 #11
Nu har jeg det oppe på webbet.
Får dog en fejl....!

Der er problemer med den side, du prøver at åbne, og den kan ikke vises.
HTTP 500 - Intern serverfejl
Internet Explorer

Kan det være fordi jeg mangler noget i mit abonnement hos webhotel udbyder?
Avatar billede keysersoze Ekspert
17. juni 2006 - 11:28 #12
fekl 500 er en kodefejl...

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede jens_32 Nybegynder
17. juni 2006 - 11:55 #13
Så får jeg følgende:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/test/indhold.asp, line 7

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= & server.mappath("data.mdb")

Hvad er der evt. galt med linie 7?
Avatar billede nielle Nybegynder
17. juni 2006 - 12:02 #14
Linjen skal rettes til:

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("data.mdb")
Avatar billede jens_32 Nybegynder
17. juni 2006 - 12:08 #15
Tak, det virker.

Hvem vil have point?
Avatar billede jens_32 Nybegynder
17. juni 2006 - 13:05 #16
Hvad nu hvis jeg ønsker at have flere linier på samme id, så kan jeg ikke bruge den primære nøgle, da den er unik. Jeg har omdøbt det unikke felt til Aut og lavet et nyt tal felt som hedder id. Når jeg kører det med flere linier ser det ud til, den kun kører den første. Hvordan klarer man den? Skal der laves et nyt indeks i databasen eller hvordan? Eller skal det felt man søger på kvalificeres i koden ovenfor?
Avatar billede jens_32 Nybegynder
17. juni 2006 - 13:11 #17
Min nuværende syntaks ser ud på følgende vis:

<html>
<body>
<%
id = request.querystring("id")
if (id<>"" AND isnumeric(id)) then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= & server.mappath("data.mdb")
set rs = Conn.execute("select * from test where id=" & id & "")
if NOT rs.EOF then
response.write rs("indhold")
else
response.write "Intet indhold blev fundet på pågældende kriterier!"
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
else
response.write "id er ikke tilstede eller også er det ikke et tal!"
end if
%>
</body>
</html>
Avatar billede jens_32 Nybegynder
17. juni 2006 - 14:50 #18
Lukket.
Avatar billede keysersoze Ekspert
17. juni 2006 - 16:19 #19
det var ikke megen tålmodighed...
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