Avatar billede aa7940 Nybegynder
15. september 2002 - 20:21 Der 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??
Avatar billede neteffect Nybegynder
15. september 2002 - 20:45 #1
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.
Avatar billede aa7940 Nybegynder
15. september 2002 - 21:00 #2
Ja, men er det muligt at sende info uden at bruger skal submite. Da det er mening at brugernavn "hænger" automatisk på alle asp sidderne.
Avatar billede neteffect Nybegynder
15. september 2002 - 21:06 #3
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)
Avatar billede excession Nybegynder
15. september 2002 - 21:46 #4
har man så ikke et problem hvis brugeren har slået clientside scripts fra?
Avatar billede neteffect Nybegynder
15. september 2002 - 22:14 #5
excession > Jo, men det er nævnt som en forudsætning i spørgsmålet
Avatar billede aa7940 Nybegynder
16. september 2002 - 10:09 #6
<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
Avatar billede neteffect Nybegynder
16. september 2002 - 10:32 #7
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.
Avatar billede aa7940 Nybegynder
16. september 2002 - 13:14 #8
%@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?
Avatar billede neteffect Nybegynder
16. september 2002 - 13:29 #9
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.
Avatar billede aa7940 Nybegynder
16. september 2002 - 13:39 #10
%@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.?!
Avatar billede neteffect Nybegynder
16. september 2002 - 14:05 #11
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
%>
Avatar billede aa7940 Nybegynder
09. oktober 2002 - 10:27 #12
neteffect> tak for hjælp
Avatar billede neteffect Nybegynder
09. oktober 2002 - 12:09 #13
Lægger lige et svar, just in case, hvis hjælpen ellers hjalp.
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