Avatar billede cevik1 Nybegynder
06. april 2004 - 12:10 Der er 12 kommentarer og
1 løsning

Random i asp

Jeg vil gerne lave en random funktion på min asp side, så jeg kan definere mellem 10 forskellige sider som åbner tilfældigt hvergang man logger på. Lige nu er denne stump kode sat på min default side som åbner opinion/index.html som default. Hvad kan jeg gøre for at lave et random på flere sider i stedet?

<%
    dim page, contents, fso, file, filePath

    page = ""

    page = request("page")

    if isEmpty(page) then
        page = "opinion/index.html"
    end if

    filePath = server.mapPath(".") & "\" & replace(page, "/", "\")

    set fso = server.createObject("Scripting.FileSystemObject")

    if fso.fileExists(filePath) then
        set file = fso.openTextFile(filePath)
        contents = file.readAll()
        file.close()
    else
        set file = fso.openTextFile(server.mapPath(".") & "\error_page.asp")
        contents = file.readAll()
        file.close()
    end if
%>
Avatar billede eagleeye Praktikant
06. april 2004 - 13:46 #1
Hedder dine filer index1.html til index10.html kan du jo gøre sådan her:

randomize
tal = Int(rnd*10)+1
page = "opinion/index" & tal & ".html"
filePath = server.mapPath(".") & "\" & replace(page, "/", "\")
Avatar billede cevik1 Nybegynder
06. april 2004 - 13:57 #2
Nej det gør de ikke men jeg kan måske bare omdøbe dem hvis det er nødvendigt er det det? eller kan jeg bare definere navnene på siderne?
Avatar billede eagleeye Praktikant
06. april 2004 - 14:00 #3
Eller kan du lave det sådan her:


randomize
tal = Int(rnd*10)+1
select case tal
case 1
  page = "opinion/index.html"
case 2
  page = "opinion/a.html"
case 3
  page = "opinion/b.html"
case 4
  page = "opinion/c.html"
case 5
  page = "opinion/d.html"
case 6
  page = "opinion/e.html"
case 7
  page = "opinion/f.html"
case 8
  page = "opinion/g.html"
case 9
  page = "opinion/h.html"
case 10
  page = "opinion/i.html"
end select

filePath = server.mapPath(".") & "\" & replace(page, "/", "\")
Avatar billede cevik1 Nybegynder
06. april 2004 - 14:09 #4
Super cool, jeg prøver. Mange tak for dit svar.
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:10 #5
Jeg har prøvet men det virker ikke, er det mig der ikke kan?
der kommer en fejl tekst på browseren  /test_web/Default.asp, line 13

koden ser således ud
<%
    dim page, contents, fso, file, filePath

    page = ""

    page = request("page")
    randomize
        tal = Int(rnd*5)+1
        select case tal
        case 1
          page = "opinion/index.html"
        case 2
          page = "01CATINET/01markedsanalyse.html"
        case 3
          page = "01CATINET/profil01.html"
        case 4
          page = "01CATINET/01omnibus.html"
        case 5
          page = "01CATINET/01paneler.html"

        end select


    filePath = server.mapPath(".") & "\" & replace(page, "/", "\")

    set fso = server.createObject("Scripting.FileSystemObject")

    if fso.fileExists(filePath) then
        set file = fso.openTextFile(filePath)
        contents = file.readAll()
        file.close()
    else
        set file = fso.openTextFile(server.mapPath(".") & "\error_page.asp")
        contents = file.readAll()
        file.close()
    end if
%>
Avatar billede eagleeye Praktikant
06. april 2004 - 15:16 #6
er dette linje 13?
page = "01CATINET/01markedsanalyse.html"

Hvad står der som fejl tekst?

Der umiddelbart ikke noget galt, så vidt jeg kan se.
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:24 #7
linje 13 er :
page = request("page")
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:26 #8
Måske du kunne fortælle præcis hvor randomize skal ind i koden for neden?
<%
    dim page, contents, fso, file, filePath

    page = ""

    page = request("page")

    if isEmpty(page) then
        page = "opinion/index.html"
    end if

    filePath = server.mapPath(".") & "\" & replace(page, "/", "\")

    set fso = server.createObject("Scripting.FileSystemObject")

    if fso.fileExists(filePath) then
        set file = fso.openTextFile(filePath)
        contents = file.readAll()
        file.close()
    else
        set file = fso.openTextFile(server.mapPath(".") & "\error_page.asp")
        contents = file.readAll()
        file.close()
    end if
%>
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:27 #9
Undskyld linje 13 er:
select case tal
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:31 #10
Helt præcis får jeg denne meddelse
Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'tal'
/test_web/Default.asp, line 13

Og linje 13 er
tal = Int(rnd*5)+1

sorry hvis det er forvirrende
Avatar billede eagleeye Praktikant
06. april 2004 - 15:32 #11
Du skal havde det ind her inde i denne if sætning hvor page sættes:

    if isEmpty(page) then
        page = "opinion/index.html"
    end if


Sådan her:

    if isEmpty(page) then
    randomize
        tal = Int(rnd*5)+1
        select case tal
        case 1
          page = "opinion/index.html"
        case 2
          page = "01CATINET/01markedsanalyse.html"
        case 3
          page = "01CATINET/profil01.html"
        case 4
          page = "01CATINET/01omnibus.html"
        case 5
          page = "01CATINET/01paneler.html"

        end select
      end if
Avatar billede eagleeye Praktikant
06. april 2004 - 15:32 #12
og så skal du havde rettet denne:

dim page, contents, fso, file, filePath

Til denne, sådan tal variablen også dim'es:

dim page, contents, fso, file, filePath, tal
Avatar billede cevik1 Nybegynder
06. april 2004 - 15:42 #13
YES!!!!! Sådan nu virker det 1000 tak
Det er så fedt og blive glad :)
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