On Tue, 10 Feb 2004 15:06:18 +0000 (UTC), CBK <cbk@solar.dk> wrote:
>Er det en måde man kan tildele en vbscript variabel's værdi til
>f.eks. en session/application variable.
>
>F.eks.
><script language = "vbscript">
>Dim sAppName
>sAppName = navigator.appName
></script>
>
>Værdien i sAppName vil jeg herefter gerne kunne arbejde videre
>med mellem <% %> -ASP tags.
>
>Jeg ønsker i dette tilfælde i global.asa (Session_OnStart) at
>logge alle brugernes browser version. Det er ikke muligt at kalde
>navigator.appname mellem <% %>.
Som Lars skriver kan du ikke udføre clientside ting på serveren. [1]
Du er nødt til at gøre det i to tempi:
1) Brug clientside JavaScript til at udfylde fx et felt i en formular.
2) Afsend formularen og behandl input med serverside
VBScript-/ASP-kode.
Når værdien så er gemt på serveren (fx som Session-variabel, hvis det
er det, du har behov for), så kan du evt. sende værdien (eller en
behandlet udgave af den) tilbage klienten, hvis du har brug for det.
[1]
Det er vigtigt, når man laver ASP, at skelne mellem hvad der foregår
på serveren og hvad der foregår hos klienten (brugeren):
Når du "fyrer en adresse af" i din browser, sender du i virkeligheden
en HTTP-forespørgsel til serveren (sammen med nogle informationer). Du
kan se en sådan simpel forespørgsel på fx <url:
http://ip.ter.dk/>.
Hvis du "fyrer siden af" ved hjælp af fx en formular, medsendes der
samtidig FORM-data i HTTP-forespørgslen.
Når HTTP-forspørgslen ankommer til serveren, vil serveren reagere
ifølge de regler den er sat op med:
- Er det en *.htm/*.html-adresse der forespørges på, vil den
formentlig blot sende indholdet af HTML-filen tilbage i form af et
HTTP-svar (HTTP Response) til klienten, hvor det så er klientens
browser, der må behandle HTML'en (+ evt. noget clientside JavaScript,
hvis der er sådan noget).
- er det en ugyldig adresse, vil den formentlig sende en standard
fejlmeddelelse (404 etc.) tilbage i form af et HTTP-svar (HTTP
Response), som klienten/browseren så viser.
- er det derimod en ASP-side, der forespørges på, så er serveren
formentlig sat op til at "parse" ASP-koden på den forespurgte side.
ASP-koden kan så indeholde en masse der skal foregå på serveren
(inputbehandling, forespørgsel i en database etc.), herunder fx også
omdirigering til en anden side på serveren (Response.Redirect), men
den ender som regel med en Response.Write (eller direkte noget
HTML-kode), som så sendes tilbage til klienten/browseren i form af et
HTTP-svar (HTTP Response). Her bahandles som før evt. inkluderet
clientside JavaScript og ellers blot HTML'en.
Så altså:
- forespørgsel fra klient (HTTP Request)
- behandling af forespørgslen på serveren
- et svar tilbage til klient (HTTP Response)
Det vi kan gøre med ASP, dvs. serverside, er at modtage og dekode
forespørgslen fra klienten, manipulere disse data og sende et svar
tilbage til klienten.
Vi kan ikke serverside "bestemme" hvad der skal ske på klienten, men
vi kan udforme responsen til klienten således at det er let for
klienten at svare det tilbage, vi ønsker.
Håber det gav lidt mening. Hvis du vil have lidt mere styr på
HTTP-protokollen, så kig evt. i RFC 1616:
<url:
http://rfc.sunsite.dk/rfc/rfc2616.html>
- specielt kap. 5 og 6 er relevante her.
Det er nørd-stof, så tag det ikke så tungt, hvis nogle af detaljerne
smutter
Good luck!
--
Jørn Andersen,
Brønshøj