Akoloythisa tis odigies toy tutorial gia th dimioyrgia login system
http://tip.gr/dev/samples/login1.asp
Parapoly xrisimo script epi tis eykairias eyxaristo osoys sinevalan s' ayto.
ayto poy parathrisa einai to eksis
otan bazo sosto username kai lathos password ekteleite o kodikas
<%
Else
Response.Redirect "lathos.htm"
RS.Close
MyConn.Close
Set RS = Nothing
Set MyConn = Nothing
End If
kai ontos metaferome s ayth th selida poy leei oti h eisodos einai anepitixhs.
Otan omos einai lathos kai to username kai to password bgazei "the page canot be displayed"
error line 10 poy ekei yparxei o kodikas
If (Not RS.EOF) AND UserName = RS("UserName") AND Password = RS("Password") Then
Session("allow") = True
mporo na diorthoso kati oste kai se aythn thn periptosh na me bgazei sth selida lathos.htm
Αυτό που ίσως να συμβαίνει είναι ότι αν δεν υπάρχει το username τα rs("UserName") & rs("Password") να μην έχουν τιμή. Ενώ κανονικά δεν θα έπρεπε να υπάρχει πρόβλημα (λόγω του τρόπου αποτίμησης της λογικής παράστασης) ίσως να φταίει αυτό τελικά.
Άλλαξε την ερώτηση SQL ως εξής
"SELECT count(*) as mycount WHERE field_username = UserName AND field_pass = Password"
Αν το rs("mycount") είναι 0 τότε lathos.html αλλιώς αν είναι 1 (δεν μπορεί να γίνει 2 ή μεγαλύτερο) τότε σωστό το login
taso s eyxaristo gia thn apanthsh alla na soy po thn alhthia dek katafera tipota. Paratheto oloklhro ton kodika:
<%
UserName = Request.Form("username")
Password = Request.Form("password")
'διαβάζει τη φόρμα
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &Server.MapPath("_private/storeDB.mdb") & ";user=;PASSWORD="
SQL = "Select * From ProductsPas where pro_name='" & username &"'"
Set RS = MyConn.Execute(SQL)
If (Not RS.EOF) AND UserName = RS("pro_name") AND Password = RS("pro_pas") Then
Session("allow") = True
%>
<%
Else
Response.Redirect "lathos.asp"
RS.Close
MyConn.Close
Set RS = Nothing
Set MyConn = Nothing
End If
%>
Ti allages prepei na ginoyn gia na doylepsei?
Έχεις δώσει το lathos.htm στο πάνω μέρος των σελίδων όπου θέλεις να απαγορεύσεις την πρόσβαση; ή έχεις αφήσει το main.htm;
<%@ Language=VBScript %>
<% Response.Buffer = True %>
<% If session("allow") = False Then Response.Redirect "lathos.htm" %>
nai ayto to ekana kai leitoyrgei sosta.
To diko moy to provlima einai to ksanaleo:
Otan vazo sosto NAME sosto PASS mpainei kanonika
Otan vazo sosto NAME lathos PASS bgainei sth selida "lathos.asp" (ola ok mexri edo)
Otan vazo lathos NAME lathos PASS emfanizete seleda
error "The page cannot de displayed"
Error Type:(0x80020009)
Exception occurred
login.asp, line 22
tip: Δεν υπάρχουν καλοί άνθρωποι , παρά μόνο εκείνοι που γελούν . * F5 για νέο tip