Avatar billede dolly Nybegynder
13. november 2003 - 14:49 Der er 15 kommentarer og
1 løsning

husk password og username

Er der nogen, der kan hjælpe mig med at denne side kan huske både password og username ved hjælp af min checkbox. Jeg mener, man gør det i cookies, men ved ikke så meget om det.

<%
  IF (Session("Authorized") = ("True")) THEN
    Response.Redirect "gallery.asp"
  END IF
%>

<%
' Hvis der er blevet trykket på knappen "Login"
If Request.Form("Action") = "Login" Then
    ' Her forberedes de indtastede værdier til validering
    strUID = Trim(Replace(Request.Form("Username"),"'",""))
    strPWD = Trim(Replace(Request.Form("Password"),"'",""))

    ' Hvis der er skrevet noget i både brugernavn og adgangskode
    If Len(strUID) > 0 And Len(strPWD) > 0 Then

'  Variables
'  *********
 
  Dim objConn
  Dim oRs


'  Connect to the DB
'  *****************
  Set objConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("users.mdb")
  objConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

        ' Opbygning af SQL streng (database) trin FROM login (users = navn på database)
        ' primærnøgle er UserID, efterfølgende username og password
        strSQL = "SELECT UserID, trin FROM login"&_
            " WHERE (Username = '" & strUID & "')"&_
            " AND (Password = '" & strPWD & "')"

        Set oRs = objConn.Execute(strSQL)
        If Not (oRs.BOF Or oRs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = oRs("UserID")
            trin = oRs("trin")
            Session("Authorized") = "True"

        Else
            ' Hvis brugeren ikke fandtes i databasen
            strERR = "Sorry, you were not accepted by the system, <br>e-mail us to get the right username and password!!!"
        End If

        ' Rydder op i vores connection objekt
        objConn.Close
        Set objConn = Nothing

        If Len(intUID) Then
            ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre
            Session("UserID") = intUID
            If trin = 1 THEN
            Response.Redirect "gallery.asp"
            elseif trin = 2 THEN
            Response.Redirect "gallery.asp"
            END IF 
        End If
    Else
        ' Hvis der ikke var angivet brugernavn og adgangskode
        strErr = "You must type in both username and password"
    End If

    If Len(strErr) > 0 Then
        ' Her laves fejlmeddelsen om til rød skrift
        strErr = "<font class=fejllogin>" & strErr & "</font>"
    End If
End If
%>

<html>
<head>
<title>HeiAn.dk</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="ego.css" rel="stylesheet" type="text/css">

</head>

<body>

<table width="780" border="0" align="left" cellpadding="0" cellspacing="0" background="grafik/images/baggrundsgrafik_02.jpg">
  <tr>
    <td width="1" height="305" rowspan="2" background="grafik/kant.jpg"><div align="right"></div></td>
    <td width="80" rowspan="2"><div align="center">
        <p class="broedtxt"><img src="grafik/trans.gif" width="80" height="6"></p>
      </div></td>
    <td width="618" valign="top" class="broedtxt"><div align="left"> <span class="overskrifter">
        Gallery - type in username and password to enter </span><span class="broedtxt"><strong>(case
        sensitive)</strong></span><span class="overskrifter"><br>
        <img src="grafik/trans.gif" width="6" height="8"> </span></div></td>
    <td width="80" rowspan="2"><img src="grafik/trans.gif" width="80" height="6"></td>
    <td width="1" height="305" rowspan="2" background="grafik/kant.jpg"></td>
  </tr>
  <tr>
    <td valign="top" class="broedtxt"><table width="526" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutTable-->
        <tr>
          <td valign="top"> <form name="frmNews" method="POST" action="gallery_login.asp">
              <table width="272" border="0" cellpadding="0" cellspacing="0">
                <!--DWLayoutTable-->
                <tr>
                  <td width="58" class="broedtxt">Username<img src="grafik/trans.gif" width="15" height="6"></td>
                  <td width="120" height="30"><input type="text" name="Username" size="20"></td>
                  <td width="74"><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td width="20"><!--DWLayoutEmptyCell-->&nbsp;</td>
                </tr>
                <tr>
                  <td width="58" class="broedtxt">Password</td>
                  <td height="30"><input type="password" name="Password" size="20">
                  </td>
                  <td class="forside"><div align="right">Save login<img src="grafik/trans.gif" width="6" height="6"></div></td>
                  <td><input type="checkbox" name="remember" value="yes" <%If Request.Cookies("remember")="yes" Then Response.Write "checked"%>></td>
                </tr>
                <tr>
                  <td width="58"><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td height="45"> <input class="button" type="submit" onFocus="this.blur()" value="Login" name="Action"></td>
                  <td><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td><!--DWLayoutEmptyCell-->&nbsp;</td>
                </tr>
              </table>
              <br>
              <p></p>
            </form></td>
        </tr>
      </table>
      <%=strErr%><br>
      <br>
      <br>
      <br>
      <br>
      NOTICE! If you do not have the username/password to see our pictures <br>
      you have to contact us and we will forward the username/password to you.
      <br> <br>
      Click <strong>&quot;<a href="hit_us.htm" target="_self" class="broedtxt">hit
      us</a>&quot;</strong> for further information on how to get in contact with
      us.<br>
    </td>
  </tr>
  <tr>
    <td colspan="5"><img src="grafik/bottom_grafik.jpg" width="780" height="70"></td>
  </tr>
</table>
</body>
</html>


//D
Avatar billede syntax_hh Nybegynder
13. november 2003 - 14:51 #1
Avatar billede dolly Nybegynder
13. november 2003 - 15:01 #2
Fair nok, men når man nu ikke er super god til dette, havde jeg måske håbet på lidt hjælp til, hvor og hvordan koderne skal sættes ind i min fil.

//D
Avatar billede henrik_n Nybegynder
13. november 2003 - 15:22 #3
Hallo Dolly

Siden du har kopieret anvender en database til at kontrollere om pågældende kan få adgang ved et indtastet brugernavn og password.
Der må være en side hvor du opretter en bruger med brugernavn og  password.

Hvorfor vil du gemme brugernavn og password i en cookie ?

mvh

Henrik
Avatar billede dolly Nybegynder
13. november 2003 - 15:49 #4
Hvorfor jeg vil gemme det i en cookie, det aner jeg ikke og ved heller ikke, om det er det, jeg vil. Har bare hørt om det før.

Jeg gemmer ikke brugernavn og password på en anden side, men derimod i min DB. Men kan du hjælpe på andenvis, hvordan jeg kan give brugeren muligheden for at gemme password og username?

//D
Avatar billede syntax_hh Nybegynder
13. november 2003 - 15:58 #5
Indsæt denne på din login side i din login form:
<INPUT TYPE=CHECKBOX CHECKED name="save">
Bagefter indsætter du dette på siden der godkender login:
    If request.form("save") = "on" then
        Response.Cookies("Brugere")("brugernavn") = session("brugernavn")
        Response.Cookies("Brugere")("password") = password
        Response.Cookies("Brugere").expires = Date+365 'Information gemmes i cookie i et år, hvis brugeren har valgt at gemme information
    Else   
        Response.Cookies("Brugere").expires = Date-1000 'Information slettes ved at sætte "expires" 1000 dage tilbage, idet brugeren har valgt at slette information
   
    End If
Avatar billede dolly Nybegynder
13. november 2003 - 16:41 #6
Jamen, jeg har ingen login side, jeg bruger kun den ene og samme, som I har set til at gøre dette.

Eller kan det bare ikke passe?

//D
Avatar billede henrik_n Nybegynder
14. november 2003 - 10:03 #7
Din side forudsætter at brugeren har et brugernavn og password, som kan indtastes på siden, eller du via mail har sendt oplysningerne til brugeren.
Når så brugeren har indtastet oplysningerne og krydset af i chckboxen, kontrollers oplysningerne i databasen og hvis oplysningerne er korrekte sendes cookien til brugeren.

Fidusen er at siden hvergang den åbnes prøver at finde cookien først. Hvis cookien er der og oplysningerne i cookien er korrekte kan du gå direkte til gallery og hvis ikke bliver du på siden og skal indtaste oplysnigerne ( brugere siden for første gang, hvis brugeren har glemt at krydse af i checkboxen eller cookien er slettet.)

I din øverste kode kan du tilføje :
<%
  IF (Session("Authorized") = ("True")) THEN
Response.Redirect "gallery.asp"
  END IF
If Request.Cookies("Gallery")("remember")="yes"
Response.Redirect "gallery.asp"
  END IF
%>
den kontrollere siden om du er på, dvs. har været rundt i gallery og vender tilbage på din opstartside uden at exploren har været lukket.
I den nye kode kan du så kontrollere om cookien eksisterer og hvis den eksisterer så forsætter scriptet.

Nu skal du have afsendt cookien og det kan du så gøre når den validere på det indtastede brugernavn og password.

Prøv at indsætte det som "syntax hh" foreslår i denne:

      Set oRs = objConn.Execute(strSQL)
        If Not (oRs.BOF Or oRs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = oRs("UserID")
            trin = oRs("trin")
            Session("Authorized") = "True"
      If request.form("Gallery")("remember") = "yes" then
              Response.Cookies("Gallery")("remember") = "yes"
              Response.Cookies("Gallery").expires = Date+365 'Information gemmes i cookie i et år, hvis brugeren har valgt at gemme information
      Else   
            Response.Cookies("Gallery").expires = Date-1000 'Information slettes ved at sætte "expires" 1000 dage tilbage, idet brugeren har valgt at slette information
   
          End If
        Else
            ' Hvis brugeren ikke fandtes i databasen
            strERR = "Sorry, you were not accepted by the system, <br>e-mail us to get the right username and password!!!"
        End If

Jeg er dog ikke helt klar over om den kan indsættes som vist, men du skal på en eller anden måde afsende cookien og det skete ikke i dit script.


Du behøver ikke denne:

<%If Request.Cookies("remember")="yes" Then Response.Write "checked"%>

i scriptet:

<td><input type="checkbox" name="remember" value="yes" <%If Request.Cookies("remember")="yes" Then Response.Write "checked"%>></td>
                </tr>


Håber det er til hjælp

Henrik
Avatar billede henrik_n Nybegynder
14. november 2003 - 10:07 #8
Ups, lille fejl her:

If request.form("remember") = "yes" then
              Response.Cookies("Gallery")("remember") = "yes"
              Response.Cookies("Gallery").expires = Date+365 'Information gemmes i cookie i et år, hvis brugeren har valgt at gemme information

Henrik
Avatar billede dolly Nybegynder
14. november 2003 - 10:18 #9
Henrik,
Jeg har lige prøvet det af og den melder nu denne fejl;

Microsoft VBScript compilation error '800a03f9'

Expected 'Then'

/gallery_login.asp, line 5

If Request.Cookies("Gallery")("remember")="yes"
-----------------------------------------------^




Og mine koder ser nu sådan ud - bare for god ordensskyld;

<%
  IF (Session("Authorized") = ("True")) THEN
Response.Redirect "gallery.asp"
  END IF
If Request.Cookies("Gallery")("remember")="yes"
Response.Redirect "gallery.asp"
  END IF
%>


<%
' Hvis der er blevet trykket på knappen "Login"
If Request.Form("Action") = "Login" Then
    ' Her forberedes de indtastede værdier til validering
    strUID = Trim(Replace(Request.Form("Username"),"'",""))
    strPWD = Trim(Replace(Request.Form("Password"),"'",""))

    ' Hvis der er skrevet noget i både brugernavn og adgangskode
    If Len(strUID) > 0 And Len(strPWD) > 0 Then

'  Variables
'  *********
 
  Dim objConn
  Dim oRs


'  Connect to the DB
'  *****************
  Set objConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("users.mdb")
  objConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

        ' Opbygning af SQL streng (database) trin FROM login (users = navn på database)
        ' primærnøgle er UserID, efterfølgende username og password
        strSQL = "SELECT UserID, trin FROM login"&_
            " WHERE (Username = '" & strUID & "')"&_
            " AND (Password = '" & strPWD & "')"

        Set oRs = objConn.Execute(strSQL)
        If Not (oRs.BOF Or oRs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = oRs("UserID")
            trin = oRs("trin")
            Session("Authorized") = "True"
           
              If request.form("remember") = "yes" then
              Response.Cookies("Gallery")("remember") = "yes"
              Response.Cookies("Gallery").expires = Date+365 'Information gemmes i cookie i et år, hvis brugeren har valgt at gemme information

      Else   
            Response.Cookies("Gallery").expires = Date-1000 'Information slettes ved at sætte "expires" 1000 dage tilbage, idet brugeren har valgt at slette information
   
          End If
        Else
            ' Hvis brugeren ikke fandtes i databasen
            strERR = "Sorry, you were not accepted by the system, <br>e-mail us to get the right username and password!!!"
        End If

       

        ' Rydder op i vores connection objekt
        objConn.Close
        Set objConn = Nothing

        If Len(intUID) Then
            ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre
            Session("UserID") = intUID
            If trin = 1 THEN
            Response.Redirect "gallery.asp"
            elseif trin = 2 THEN
            Response.Redirect "gallery.asp"
            END IF 
        End If
    Else
        ' Hvis der ikke var angivet brugernavn og adgangskode
        strErr = "You must type in both username and password"
    End If

    If Len(strErr) > 0 Then
        ' Her laves fejlmeddelsen om til rød skrift
        strErr = "<font class=fejllogin>" & strErr & "</font>"
    End If
End If
%>

<html>
<head>
<title>HeiAn.dk</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="ego.css" rel="stylesheet" type="text/css">

</head>

<body>

<table width="780" border="0" align="left" cellpadding="0" cellspacing="0" background="grafik/images/baggrundsgrafik_02.jpg">
  <tr>
    <td width="1" height="305" rowspan="2" background="grafik/kant.jpg"><div align="right"></div></td>
    <td width="80" rowspan="2"><div align="center">
        <p class="broedtxt"><img src="grafik/trans.gif" width="80" height="6"></p>
      </div></td>
    <td width="618" valign="top" class="broedtxt"><div align="left"> <span class="overskrifter">
        Gallery - type in username and password to enter </span><span class="broedtxt"><strong>(case
        sensitive)</strong></span><span class="overskrifter"><br>
        <img src="grafik/trans.gif" width="6" height="8"> </span></div></td>
    <td width="80" rowspan="2"><img src="grafik/trans.gif" width="80" height="6"></td>
    <td width="1" height="305" rowspan="2" background="grafik/kant.jpg"></td>
  </tr>
  <tr>
    <td valign="top" class="broedtxt"><table width="526" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutTable-->
        <tr>
          <td valign="top"> <form name="frmNews" method="POST" action="gallery_login.asp">
              <table width="272" border="0" cellpadding="0" cellspacing="0">
                <!--DWLayoutTable-->
                <tr>
                  <td width="58" class="broedtxt">Username<img src="grafik/trans.gif" width="15" height="6"></td>
                  <td width="120" height="30"><input type="text" name="Username" size="20"></td>
                  <td width="74"><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td width="20"><!--DWLayoutEmptyCell-->&nbsp;</td>
                </tr>
                <tr>
                  <td width="58" class="broedtxt">Password</td>
                  <td height="30"><input type="password" name="Password" size="20">
                  </td>
                  <td class="forside"><div align="right"><font color="#666666">Save
                      login</font><img src="grafik/trans.gif" width="6" height="6"></div></td>
                  <td><input type="checkbox" name="remember" value="yes"></td>
                </tr>
                <tr>
                  <td width="58"><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td height="45"> <input class="button" type="submit" onFocus="this.blur()" value="Login" name="Action"></td>
                  <td><!--DWLayoutEmptyCell-->&nbsp;</td>
                  <td><!--DWLayoutEmptyCell-->&nbsp;</td>
                </tr>
              </table>
              <br>
              <p></p>
            </form></td>
        </tr>
      </table>
      <%=strErr%><br>
      <br>
      <br>
      <br>
      <br>
      NOTICE! If you do not have the username/password to see our pictures <br>
      you have to contact us and we will forward the username/password to you.
      <br> <br>
      Click <strong>&quot;<a href="hit_us.htm" target="_self" class="broedtxt">hit
      us</a>&quot;</strong> for further information on how to get in contact with
      us.<br>
    </td>
  </tr>
  <tr>
    <td colspan="5"><img src="grafik/bottom_grafik.jpg" width="780" height="70"></td>
  </tr>
</table>
</body>
</html>

//D
Avatar billede henrik_n Nybegynder
14. november 2003 - 10:45 #10
Der skal bare tilføjes "then"

<%
  IF (Session("Authorized") = ("True")) Then
Response.Redirect "gallery.asp"
  END IF
If Request.Cookies("Gallery")("remember")="yes" then
Response.Redirect "gallery.asp"
  END IF
%>

henrik
Avatar billede dolly Nybegynder
14. november 2003 - 10:52 #11
Jamen, selvfølgelig!!!

Det hjalp og nu kører det!

TAK for hjælpen, den var effektiv!

Pointene er dine!

//D
Avatar billede dolly Nybegynder
14. november 2003 - 10:56 #12
Henrik, nu har jeg godt nok givet dig pointene, som også er velfortjent, men vil lige høre dig om en ting...

Når jeg har logget ind en gang, vil den så altid huske det indtil tiden løber ud? Jeg kunne nemlig godt tænke mig, at hver gang man gik ind så lige fik login siden, som dog husker password og username, men bare at man lige skulle klikke OK.

Jeg vil meget gerne give dig yderligere 60 point for svar på dette. Hvis du er interesseret, så opretter jeg det som et nyt indforstået spm til dig straks.

//D
Avatar billede henrik_n Nybegynder
14. november 2003 - 11:21 #13
Hej igen
Ja, så længe cookien er på brugerens pc og datoen ikke er overskredet skulle det virke.

Der kan godt laves et "ok" system, men sikkerhedsmæssig har det ingen betydning.
Du kan indføre noget kode der giver en box man kan sig ok til, samtidig kunne den opdatere cookien, så den hver gang man har været på din side gælder for et år.
Cookien er et sikkert tegn på at brugern har været på din side før og er godkendt i databasen. Det er ikke nødvendigt at den sætter brugernavn og password på.
Hvis cookien kopieres til en anden pc med og uden brugernavn og password i cookien, vil pc der har cookien få adgang til din side.
Den bedste sikkerhed er som minimum, at der skal indtastes et password hver gang. 

Jeg får desværre ikke tid før i næste uge, men ellers vil jeg gerne hjælp dig.
Det var nu "syntax hh" der fik dine point, men skidt det er sjovt at hjælpe.

Henrik
Avatar billede dolly Nybegynder
14. november 2003 - 11:24 #14
Arhhh, pis, det var min fejl! Det var dig, der skulle have haft pointene eller ja, I har nok begge hjulpet, men du skal ikke snydes for dem, så derfor opretter jeg et nyt spm med det samme rettet til dig. Som du kan gå klikke indpå det med det samme og få pointene! Der svarer jeg lige tilbage på det du har skrevet.

//D
Avatar billede henrik_n Nybegynder
14. november 2003 - 11:30 #15
Okay da, men jeg skal nok kigge på det andet du spurgte om og det behøver jeg så ikke point for!!

Husk at henvise til det her spørgsmål, når du opretter det nye. Det kræves vist af "Administratorerne"

Henrik

Henrik
Avatar billede dolly Nybegynder
14. november 2003 - 11:33 #16
Nå, nu har jeg oprettet det andet spm under ASP programmering titel "Password og username" kalder jeg det. Så skriv mig tilbage på det og du får pointene.

//D
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