15. september 2002 - 20:21Der er
12 kommentarer og 1 løsning
fra script til asps Sessions variable?
Jeg har et stykke kode i VBScript som henter brugernavn fra Exchange server og denne script skal afvikles på klienten. Er der muligt at gemme dette brugernavn i en sessions variable først som tom streng og bagefter som rigtige brugernavn(global.asa ?). Er der nogen som har haft lignende problem alså at sende data fra scriptet til ASP??
Værdien fra dit client-side script skal lægges ind i querystring til et link eller som value i et form-felt, så værdien kan komme videre til server-side scriptet for den side, der linkes til eller er action for form'en.
Det må kunne lade sig gøre, men jeg kan ikke lige huske ud af hovedet, hvordan det gøre med client-side VBScript. I JavaScript kan du få loade en ny side med location.href('dinside.asp?brugernavn=' + brugernavn)
<html><head></head> <form method="POST" action ="bruger.asp?entry=true" form name ="formMin">
<script language="vbscript"> dim min function MinFunktion() dim oApplication dim oNameSpace dim oUser
Set oApplication = CreateObject("Outlook.Application") set oNamespace=oApplication.GetNamespace("MAPI") min = oNamespace.CurrentUser.Name MinFunktion = oNamespace.CurrentUser.Name End Function </SCRIPT>
<INPUT TYPE = "hidden" NAME ="bruger" VALUE=MinFunktion()> </form> <BODY ONLOAD = formMin.submit()> </HTML> Som i kan se form submiter automatisk og sender hiddens input value til anden asp side som igen sætter den op som sessions variable. selve variable er erklæret i global.asa som tom string i starten af session. Problemet er at der kaldes ikke MinFunktion men opfattes som String.(value ="MinFunktion") Jeg har også fra scriptet prøvet at sætte Value på hidden med: document.minForm.bruger.value = min, men det går hellere ikke
Du skal nok have javascript til at document.write hele inputfeltet.
Umiddelbart tror jeg heller ikke det går at submitte allerede ved body onload, men det er der vel heller ingen grund til. Det kan gøres inline lige efter form'en.
%@LANGUAGE = VBScript %> <%Option Explicit %> <% dim strNavn If("entry")=true Then strNavn =Request.Form("bruger") Session("brugerNavn")= strNavn Response.Redirect("Telefon2.asp") End If %> <html>
<script language="VBScript"> Sub MinFunktion() dim oApplication dim oNameSpace dim oUser Set oApplication = CreateObject("Outlook.Application") Set oNamespace=oApplication.GetNamespace("MAPI") minForm.bruger.value=oNamespace.CurrentUser.Name %@LANGUAGE = VBScript %> <%Option Explicit %> <% dim strNavn If("entry")=true Then strNavn =Request.Form("bruger") Session("brugerNavn")= strNavn Response.Redirect("Telefon2.asp") End If %> <html>
<script language="VBScript"> Sub MinFunktion() dim oApplication dim oNameSpace dim oUser
Set oApplication = CreateObject("Outlook.Application") Set oNamespace=oApplication.GetNamespace("MAPI") minForm.bruger.value=oNamespace.CurrentUser.Name minForm.submit() End Sub </SCRIPT> <form method="POST" action ="getBruger.asp?entry=true" name ="minForm"> <INPUT TYPE = "hidden" NAME ="bruger" VALUE=""> </form> <BODY ONLOAD = MinFunktion()> </HTML> End Sub </SCRIPT> <form method="POST" action ="getBruger.asp?entry=true" name ="minForm"> <INPUT TYPE = "hidden" NAME ="bruger" VALUE=""> </form<BODY ONLOAD = MinFunktion()> </HTML> Variablen er gemt i session objektet men nu køre denne side i en løkke. Jeg ved godt at det er med submit i VBScript blokken men hvor skal jeg flytter den henne? Man bliver heller ikke redirektet til den anden side. Kan du hjælpe?
Prøv lige at rense lidt ud i siden: Form'en ligger der to gange. Og tilføj RUNAT=server i script-tags, hvor det er relevant.
Brug alert (eller hvad det nu hedder i VBScript) og view source (fjern submit midlertidigt), så du kan se præcis hvad der står, lige før siden skifter.
%@LANGUAGE = VBScript %><%Option Explicit %> <% dim strNavn If("entry")=true Then strNavn =Request.Form("bruger") Session("brugerNavn")= strNavn Response.Redirect("Telefon2.asp") End If %> <html> <script language="VBScript"> Sub MinFunktion() dim oApplication dim oNameSpace dim oUser
Set oApplication = CreateObject("Outlook.Application") Set oNamespace=oApplication.GetNamespace("MAPI") minForm.bruger.value=oNamespace.CurrentUser.Name minForm.submit() End Sub </SCRIPT> <form method="POST" action ="getBruger.asp?entry=true" name ="minForm"> <INPUT TYPE = "hidden" NAME ="bruger" VALUE=""> </form> <BODY ONLOAD = MinFunktion()> </HTML> Nu har jeg renset lidt ud, men RUNAT server skal jeg ikke ha`da scriptet i MinFunktion() afvikles på klienten og henter klients brugernavn. Hvis jeg fjerner submit vil brugernavn ikke sendes til serveren og vil ikke gemmes som sessionsvariabel.?!
Jeg har ikke godt med at form'en ligger før <body>
<BODY ONLOAD = MinFunktion()> <form method="POST" action ="getBruger.asp?entry=true" name ="minForm"> <INPUT TYPE = "hidden" NAME ="bruger" VALUE=""> </form> <script language="VBScript">MinFuntion()</script> </body> </HTML>
Hvad hedder den side vi kigger på - er det getbruger.asp? I så fald looper den pga af testen på true. Det skal være If("entry")="true" Then
Når jeg foreslog at fjerne submit midlertidigt, var det for at give dig mulighed for at se med view source i browseren, hvad feltet "bruger" indeholdt lige før submitten. Men hvis den når frem til at reloade siden, kan du også se det med:
<% dim strNavn response.write Request.Form("bruger") If("entry")="true" Then strNavn =Request.Form("bruger") Session("brugerNavn")= strNavn ' Response.Redirect("Telefon2.asp") 'rem for at nå at se "bruger" End If %>
Lægger lige et svar, just in case, hvis hjælpen ellers hjalp.
Synes godt om
Ny brugerNybegynder
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.