/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Variable findes/login
Fra : Klaus Egebjerg


Dato : 10-04-02 20:33

Hej

jeg sidder og laver et login system, men kan ikke rigtig få det til at
virke. Som scriptet er nu så er alle adgangskoder rigtig. Det hele virkede
meget godt, før jeg fik indføjet det med Err. så kunne den finde ud af, om
adgangskode var rigtig, så det har nok et eller andet med det at gøre, men
hvad ? - Er der nogen der har et bud. Scriptet er således ud

klaus

OpenConn("opskrifter.mdb")
strMail = Trim(Request.Form("Mail"))
strQ = "SELECT Kundenr, Navn, Password FROM Kunder WHERE Mail='"& strMail
&"'"
on error resume next
Set rs = Conn.Execute (strQ)
If Err-Number <> 0 then
Response.Write "Der er fejl"
response.end
End If
If strPassword = rs("Password") Then
strKontrol = "ja"
else
strKontrol = "nej"
'End If
End If
Response.Write strKontrol

If strKontrol = "ja" Then
session.contents("kilde") = "retminadresse"

Else

%>
<script language="JavaScript">
alert ("Forkert mail eller adgangskode ")
</script>
<%

End If
Response.Write rs("Navn")
End Select

%>






 
 
Jakob Andersen (10-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 10-04-02 21:02

"Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
news:Wt0t8.26310$iY5.838932@news010.worldonline.dk...
> Som scriptet er nu så er alle adgangskoder rigtig. Det hele virkede
> meget godt, før jeg fik indføjet det med Err. så kunne den finde ud af, om
> adgangskode var rigtig, så det har nok et eller andet med det at gøre, men
> hvad ?

Fejlen er sådan set meget simpel den skylde at du har lavet en tastefejl i
nedenstående

> If Err-Number <> 0 then

Da du ikke "tvinger" dig selv til at deklarere variabler ved at bruge Option
Explicit tror VBScript at du bruger en variabel der hedder "Err-Number" og
den er jo tom dvs. Forskellig fra 0. Derfor stoppes udførslen.

Du skal istedet rette linien til:

If Err.Number <> 0 then

Generelt er det en god ide at bruge Option Explicit så undgår man denne
slags fejl.

Artikel:
<URL: http://www.4guysfromrolla.com/webtech/faq/Intermediate/faq6.shtml>

Dokumentation:
<URL:
http://msdn.microsoft.com/library/en-us/script56/html/vsstmoptionexplicit.as
p>

--
Jakob Andersen



Klaus Egebjerg (10-04-2002)
Kommentar
Fra : Klaus Egebjerg


Dato : 10-04-02 21:10


"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:a925nk$2osq$1@news.cybercity.dk...
> "Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
> news:Wt0t8.26310$iY5.838932@news010.worldonline.dk...
> > Som scriptet er nu så er alle adgangskoder rigtig. Det hele virkede
> > meget godt, før jeg fik indføjet det med Err. så kunne den finde ud af,
om
> > adgangskode var rigtig, så det har nok et eller andet med det at gøre,
men
> > hvad ?
>
> Fejlen er sådan set meget simpel den skylde at du har lavet en tastefejl i
> nedenstående
>
> > If Err-Number <> 0 then
>
> Da du ikke "tvinger" dig selv til at deklarere variabler ved at bruge
Option
> Explicit tror VBScript at du bruger en variabel der hedder "Err-Number" og
> den er jo tom dvs. Forskellig fra 0. Derfor stoppes udførslen.
>
> Du skal istedet rette linien til:
>
> If Err.Number <> 0 then
>
> Generelt er det en god ide at bruge Option Explicit så undgår man denne
> slags fejl.

Det hjælper bare stadigvæk ikke. Den siger stadigvæk, at alle adgangskoder
er rigtig.

Klaus



Jakob Andersen (10-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 10-04-02 21:31

"Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
news:e01t8.26330$iY5.841542@news010.worldonline.dk...
> Det hjælper bare stadigvæk ikke. Den siger stadigvæk, at alle adgangskoder
> er rigtig.

Okay, jeg gik bare udfra at dette var fejlen da den lige "sprang i øjnene"

Jeg har lige et par spørgsmål så:

a. Hvor kommer strPassword fra?
b. Hvad laver den "End Select" der er i slutningen af dit script?

--
Jakob Andersen



Klaus Egebjerg (10-04-2002)
Kommentar
Fra : Klaus Egebjerg


Dato : 10-04-02 21:32


"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:a927db$2rbc$1@news.cybercity.dk...
> "Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
> news:e01t8.26330$iY5.841542@news010.worldonline.dk...
> > Det hjælper bare stadigvæk ikke. Den siger stadigvæk, at alle
adgangskoder
> > er rigtig.
>
> Okay, jeg gik bare udfra at dette var fejlen da den lige "sprang i øjnene"
>
> Jeg har lige et par spørgsmål så:
>
> a. Hvor kommer strPassword fra?
> b. Hvad laver den "End Select" der er i slutningen af dit script?
>
> --
> Jakob Andersen
>
> Det var fordi den script stykke, kun var en del af et længere stykke (
jeg tod bare det stykke jeg troede var relavant. Der ser i sin helhed
således ud:

Klaus

<%

Sub Out(strOut)
Response.Write strOut
End Sub

%>
<br><br>
<form ACTION="<%= Request.ServerVariables ("SCRIPT_NAME") %>" METHOD="POST"
id="form1" name="form1">
<table>
<%
Out "<tr><td>Mail:<td> <input TYPE=TEXT Size=40 NAME=Mail></td>"
Out "<tr><td>Password<td><input Type=TEXT SiZE=40 NAME=Password></td>"
%>
</table>
<%
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Hent kundedata"">"
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Fortryd"">"

strMail = Trim(Request.Form("Mail"))
strPassword = Trim(Request.Form("Password"))

'StrFejl = 0

Dim Conn
function OpenConn (DBName)

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.ServerVariables("PATH_TRANSLATED"),
instrrev(request.ServerVariables("PATH_TRANSLATED"), "\"))
Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath &
";Driver={Microsoft Access Driver (*.mdb)}"

End function

strMail = Trim(Request.Form("Mail"))
strPassword = Trim(Request.Form("Password"))

Select Case Trim(Request.Form("DO"))
Case "Fortryd"
Response.Redirect "menu.htm"
Response.End
Case "Hent kundedata"
OpenConn("opskrifter.mdb")
strMail = Trim(Request.Form("Mail"))
strQ = "SELECT Kundenr, Navn, Password FROM Kunder WHERE Mail='"& strMail
&"'"
on error resume next
Set rs = Conn.Execute (strQ)

If Err.Number <> 0 then
Response.Write "Der er fejl"
response.end
End If
If strPassword = rs("Password") Then
strKontrol = "ja"
else
strKontrol = "nej"
'End If
End If
Response.Write strKontrol

If strKontrol = "ja" Then
session.contents("kilde") = "retminadresse"

Else

%>
<script language="JavaScript">
alert ("Forkert mail eller adgangskode ")
</script>
<%

End If
Response.Write rs("Navn")
End Select

%>




Jakob Andersen (10-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 10-04-02 22:05

"Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
news:wl1t8.26339$iY5.843516@news010.worldonline.dk...
> Det var fordi den script stykke, kun var en del af et længere stykke (
> jeg tod bare det stykke jeg troede var relavant. Der ser i sin helhed
> således ud:

Jeg kan ikke umiddelbart se nogen fejl, men jeg vil anbefale dig at lave
scriptet sådan her (Så slipper du for On error resume next som er ret
ressource krævende):
------------------------------------------------
<br><br>
<form action="<%= Request.ServerVariables ("SCRIPT_NAME") %>" method="post">
<table>
<tr>
<td>Mail:</td>
<td><input type="text" size="40" name="Mail"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size="40" name="Password"></td>
</tr>
<tr>
<td><input type="submit" name="do" value="Hent kundedata"></td>
<td><input type="submit" name="do" value="Fortryd"></td>
</tr>
</table>

<%
' Funktioner -----------------------------------------------------
Function Fortryd()
Response.Redirect "menu.htm"
Response.End
End Function

Function HentKundedata( Email, Password )
OpenConn("opskrifter.mdb")
strMail = Trim(Replace(Mail, "'", "''"))
strPassword = Replace(strPassword , "'", "''")

'Passwordet er med i Queryen, så vi ikke behøver at tjekke det senere
strQuery = "SELECT Kundenr, Navn, Password FROM Kunder WHERE Mail='"&
strMail &"' AND Password = '" & strPassword & "'"
Set rs = Conn.Execute(strQuery)

'Hvis recordsettet er tomt er brugeren ikke godkendt
If rs.BOF Then
Response.Write( "<script type=""text/javascript"">alert(""Forkert
email eller Password"");</script>" )
Else
Response.Write( "Du er godkendt" )
Session("kilde") = "retminadresse"
Response.Write rs("Navn")
End if
End Funciton

Dim Conn
Function OpenConn (DBName)
Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.ServerVariables("PATH_TRANSLATED"),
instrrev(request.ServerVariables("PATH_TRANSLATED"), "\"))
Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath
&";Driver={Microsoft Access Driver (*.mdb)}"
End function
' Slut på funktioner -----------------------------------------------------


'Her tjekker vi hvor vi er:

If Request.Form( "do" ) = "Hent kundedata" Then
HentKundedata Request.Form( "Email" ), Request.Form( "Password" )
Elseif Request.Form( "do" ) = "Fortryd" Then
Fortryd
End if
%>

----------------------------------------------------------------------




Steen Ulrick Madsen (11-04-2002)
Kommentar
Fra : Steen Ulrick Madsen


Dato : 11-04-02 16:52

Hej Klau
Det var dog et kompliceret script, du har fået lavet.
Prøv at rettet nedenstående lidt til, det er noget enklere.

Mvh Steen


Svar1 = Request.Form("Pw")
Svar2 = Request.Form("User")

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open Session("MinDatabase")

Set Class2 = Server.CreateObject("ADODB.Recordset")
dim Sogestreng
Sogestreng = "where password ='" & Svar1 & "' and adgangskode ='" & Svar2 &
"'"
Set Class2 = Connect.Execute("SELECT * FROM adgangskoder " & (SogeStreng) &
" order by Id")

If Class2.EOF = true then
Class2.Close
set Class2=nothing
Response.Redirect "loginside.asp"

Else
%>
<p>Du har adgang!!! <br>
<%
End if
%>





Jakob Andersen (11-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 11-04-02 17:31

"Steen Ulrick Madsen" <sum@sumnet.dk> skrev i en meddelelse
news:a94bh0$2mmg$1@news.cybercity.dk...
> Prøv at rettet nedenstående lidt til, det er noget enklere.

Hvad tror du der sker i nedenstående hvis jeg logger ind med

' or '1' = '1

i både brugernavn og password?

> Connect.Open Session("MinDatabase")

Hvad laver du her?

> Set Class2 = Server.CreateObject("ADODB.Recordset")

Hvorfor laverdu et Recordset her for tre linier senere at intiansere et
andet oveni.

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste