Avatar billede lord-jonas Nybegynder
22. august 2008 - 11:32 Der er 9 kommentarer og
1 løsning

Random page

Hej nørder.
Jeg er på udkig efter et lille script, som laver et random default side, jeg har 3 sider som skal skiftes med at være forsde, hver eneste gang man går ind på siden.
Hovrdan laver jeg det?
Avatar billede softspot Forsker
22. august 2008 - 11:42 #1
Noget i stil med:

<%
randomize
sider = Array("side1.asp","side2.asp","side3.asp")
i = int(rnd() * 10) mod 3
server.execute sider(i)
%>
Avatar billede lord-jonas Nybegynder
22. august 2008 - 11:50 #2
Jeg skal vel også dimisonere sider.

<%
dim sider

randomize
sider = Array("page_id=2","page_id=4","page_id=37")
i = int(rnd() * 10) mod 3
server.execute sider(i)
%>

Men den kommer med denne fejl

Server.Execute Error
The call to Server.Execute failed while loading the page.
Avatar billede softspot Forsker
22. august 2008 - 11:58 #3
Kun strengt nødvendigt, hvis du benytter Option Explicit, men en god skik, så det skal jeg ikke bruge meget energi på at tale dig fra :-)

Hvis du endelig vil være korrekt i forhold til det, så skal du også dimensionere variablen i ;-)

Fejlen opstår nok fordi du ikke har en side der hedder page_id. Jeg vil gætte på du mener noget i stil med ?page_id=2 i stedet (det vil - vist nok - tage default-siden og kalde den med en parameter - alternativt er det den aktuelle side der kaldes med parameteren page_id=2).
Avatar billede lord-jonas Nybegynder
22. august 2008 - 12:07 #4
i er i dim lidt længere oppe i min kode.

nu har jeg skrevet:

<%
dim sider

randomize
sider = Array("default.asp?page_id=2","default.asp?page_id=4","default.asp?page_id=37")
i = int(rnd() * 10) mod 3
server.execute sider(i)
%>

men får:

Server object error 'ASP 0173 : 80004005'

Invalid Path Character

An invalid character was specified in the Path parameter for the MapPath method.
Avatar billede softspot Forsker
22. august 2008 - 12:20 #5
Aaah, ok, det er fordi Server.Execute ikke kan tage parametre. Server.Execute svarer egentlig til et funktionskald i programmeringstermer, men hvor det blot en en fil der indlæses (og udføres om nødvendigt) det sted hvor kaldet foretages. Siden der kaldes har adgang til alle de globale oplysninger, så som application, session, request, response, server m.fl., men ikke lokale variable som er inkluderet i den side der kalder Server.Execute! Hvis du vil ændre sidens URL, skal du kalde Response.Redirect i stedet og så håndtere at page_id er sat (dvs. undlade at dine redirects går i uendelig løkke).

Jeg ved ikke hvordan du har struktureret din side ifht. den page_id du sender ind, så jeg kan ikke umiddelbart råde dig til noget specifikt ifht. strukturen...

Jeg ville nok selv vælge at lægge de 3 varianter af forsiden ud i 3 separate asp-filer, som kunne kaldes alt efter hvilket index der blev genereret. På den måde vil du også få en mere ren (og transparent) URL til din forside...
Avatar billede softspot Forsker
28. august 2008 - 23:45 #6
Kom du videre med denne?
Avatar billede lord-jonas Nybegynder
29. august 2008 - 08:15 #7
Ja det gjorde jeg.

skrev:

randomize
dim arr
arr = Split("41,39,40,",",")
response.redirect "default.asp?page_id=" & arr(rnd*ubound(arr))
Avatar billede softspot Forsker
29. august 2008 - 08:54 #8
OK, jamen, så smider jeg da lige et svar :-)
Avatar billede softspot Forsker
29. august 2008 - 09:18 #9
Tak for point :)
Avatar billede lord-jonas Nybegynder
29. august 2008 - 09:21 #10
your welcome : )
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