Avatar billede termie Nybegynder
31. marts 2003 - 14:55 Der er 11 kommentarer og
1 løsning

Overførsel af af sessionsvariabel .asp

Kære Orakel, på forhånd tak for hjælpen..!!

Jeg har et asp script der checker for brugernavn og password. Dette sker igennem en sessionsvariabel og dette fungere OK.

Brugeren har nu mulighed for at lave et indlæg der gemmes i en DB, til dette har jeg oprettet et asp script der gemmer informationerne fra en form. Dette fungere osse fint.

Nu vil jeg have at gem funktionen automatisk skriver brugernavnet til DB og dette havde jeg regnet med at gøre med en sessionsvariabel, jeg kan bare ikke få det til at fungere.

Jeg har brug for at vide hvordan jeg definerer sessionsvariablen i "login" scriptet og hvordan jeg henter den igen når jeg kører"gem" funktionen.

Her er de to scripts jeg bruger, først login scriptet og efterfølgende gem funktionen.


logincheck:

<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

' Gemmer formfelterne i Variabler
    strUsername = unQuote(request("username"))
    strPassword = unQuote(request("password"))
       

Sql = "Select Count(*) as Found from user where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
Set LO = RS.Execute(Sql)
 
    if LO("Found") = 0 then
        Session("login") = ""
        error = response.Redirect("/default.asp?page=245")
      else
          strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
          Set myConn = Server.CreateObject("ADODB.Connection")
          myConn.Open strDSN
          strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
          Set ez = myConn.Execute(strSQL)
            Session("login") = "yes mate"
   
        response.redirect "../default.asp"
   

   
            EZ.Close
            RS.Close
            myConn.Close
          end if
    end if%>


<form method="POST" action="/password/login.asp">
<input type="hidden" name="mode" value="Check">
                 
Brugernavn:
<input type='text' name='username'' value="<%=strbrugernavn%>">
                   
Password:
<input type="password" value="<%=strpassword%>" name="password">
<input type="reset" value="Slet" name="reset">
<input type="submit" value=" Log In " name="submit">
<%=error%>
</form>


Og "gem" scriptet

<%@ LANGUAGE="VBSCRIPT"%>


    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.ConnectionTimeout = 15
    Conn.CommandTimeout = 30
        Conn.Open ("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb"))

    id = Request.querystring("id")
   
    Set cmdTemp = Server.CreateObject("ADODB.Command")
    Set RS = Server.CreateObject("ADODB.Recordset")
    cmdTemp.CommandText = "SELECT nyhed.* FROM nyhed"
    cmdTemp.CommandType = 1
    Set cmdTemp.ActiveConnection = Conn
    RS.Open cmdTemp, , 3, 3
       

RS.AddNew

RS("opretId") = "her skal brugernavnet tilføjes"
RS("dato")= FormatDateTime(now, vbLongDate)
RS("overskrift") = Request.Form("overskrift")
RS("appetit") = Request.Form("appetit")
RS("nyhed") = Request.Form("nyhed")
RS.Update

RS.Close
SET RS = Nothing
Conn.Close
SET Conn = Nothing
%>

<%Response.Clear%>
<%Response.Redirect"oversigt.asp"%>
<%Response.End%>
Avatar billede mm12010 Nybegynder
31. marts 2003 - 15:00 #1
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

' Gemmer formfelterne i Variabler
    strUsername = unQuote(request("username"))
    strPassword = unQuote(request("password"))
       

Sql = "Select Count(*) as Found from user where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
Set LO = RS.Execute(Sql)
 
    if LO("Found") = 0 then
        Session("login") = ""
        error = response.Redirect("/default.asp?page=245")
      else
          strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
          Set myConn = Server.CreateObject("ADODB.Connection")
          myConn.Open strDSN
          strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
          Set ez = myConn.Execute(strSQL)
            Session("login") = ev("username")
   
        response.redirect "../default.asp"
   

   
            EZ.Close
            RS.Close
            myConn.Close
          end if
    end if%>


<form method="POST" action="/password/login.asp">
<input type="hidden" name="mode" value="Check">
                 
Brugernavn:
<input type='text' name='username'' value="<%=strbrugernavn%>">
                   
Password:
<input type="password" value="<%=strpassword%>" name="password">
<input type="reset" value="Slet" name="reset">
<input type="submit" value=" Log In " name="submit">
<%=error%>
</form>

<%


    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.ConnectionTimeout = 15
    Conn.CommandTimeout = 30
        Conn.Open ("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb"))

    id = Request.querystring("id")
   
    Set cmdTemp = Server.CreateObject("ADODB.Command")
    Set RS = Server.CreateObject("ADODB.Recordset")
    cmdTemp.CommandText = "SELECT nyhed.* FROM nyhed"
    cmdTemp.CommandType = 1
    Set cmdTemp.ActiveConnection = Conn
    RS.Open cmdTemp, , 3, 3
       

RS.AddNew

RS("opretId") = Session("login")
RS("dato")= FormatDateTime(now, vbLongDate)
RS("overskrift") = Request.Form("overskrift")
RS("appetit") = Request.Form("appetit")
RS("nyhed") = Request.Form("nyhed")
RS.Update

RS.Close
SET RS = Nothing
Conn.Close
SET Conn = Nothing
%>

<%Response.Clear%>
<%Response.Redirect"oversigt.asp"%>
<%Response.End%>
Avatar billede termie Nybegynder
31. marts 2003 - 15:33 #2
HVis jeg udskifter

Session("login") = "yes mate" med  Session("login") = ev("username") virker logInnet ikke længere.

Jeg er ikke særlig meget inde i asp, men kan man ikke ændre check funktionen så sammenligningsparameteren bliver noget andet end "yes mate"?????
Avatar billede mm12010 Nybegynder
31. marts 2003 - 15:45 #3
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

' Gemmer formfelterne i Variabler
    strUsername = unQuote(request("username"))
    strPassword = unQuote(request("password"))
       

Sql = "Select * from user where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
Set LO = RS.Execute(Sql)
 
    if LO.EOF Then
        Session("login") = ""
        error = response.Redirect("/default.asp?page=245")
      else
          strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
          Set myConn = Server.CreateObject("ADODB.Connection")
          myConn.Open strDSN
          strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
          Set ez = myConn.Execute(strSQL)
            Session("login") = ev("username")
   
        response.redirect "../default.asp"
   

   
            EZ.Close
            RS.Close
            myConn.Close
          end if
    end if
   
%>
Avatar billede termie Nybegynder
31. marts 2003 - 16:02 #4
Hmmm den vil stadig ikke acceptere log innet, den kommer med en fejl side
Avatar billede mm12010 Nybegynder
31. marts 2003 - 16:06 #5
hvilken fejlside?
Avatar billede termie Nybegynder
31. marts 2003 - 16:15 #6
Kan jeg ikke se da jeg afvikler direkte på den "rigtige" server. Men DL lige siden og tester.
Avatar billede termie Nybegynder
31. marts 2003 - 16:28 #7
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'ev'
/password/login.asp, line 29
Avatar billede mm12010 Nybegynder
31. marts 2003 - 16:35 #8
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb")

If Request("mode") = "Check" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,"%","53")
End Function

' Gemmer formfelterne i Variabler
    strUsername = unQuote(request("username"))
    strPassword = unQuote(request("password"))
       

Sql = "Select * from user where (username = '" & strUsername  & "') and (password ='" & strPassword  & "')"
Set LO = RS.Execute(Sql)
 
    if LO.EOF Then
        Session("login") = ""
        error = response.Redirect("/default.asp?page=245")
      else
          strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
          Set myConn = Server.CreateObject("ADODB.Connection")
          myConn.Open strDSN
          strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')"
          Set ez = myConn.Execute(strSQL)
            Session("login") = ez("username")
   
        response.redirect "../default.asp"
   

   
            ez.Close
            RS.Close
            myConn.Close
          end if
    end if
   
%>
Avatar billede termie Nybegynder
31. marts 2003 - 19:35 #9
Her sker der lidt underlige ting systemet opfører sig om, at man logger ind men man kan ikke komme ind på sider der kræver log in. JEg kan ikke komme ind på den side hvor jeg skal lave indlæg.
Avatar billede mm12010 Nybegynder
31. marts 2003 - 19:45 #10
hvilken kode bruger til at tjecke login med på de andre sider???
Avatar billede termie Nybegynder
31. marts 2003 - 19:46 #11
Så kører det, du får pointene for godt arbejde....:-)
Avatar billede mm12010 Nybegynder
31. marts 2003 - 20:06 #12
takker :o)
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