Avatar billede chaser64 Nybegynder
04. august 2005 - 09:53 Der er 8 kommentarer og
1 løsning

compare textboks med database-felt

Hej Eksperter

Hvordan sammenligner jeg et textfelt med et felt i databasen?

... Og hvis de er ens skal den redirecte til en ny side - hvis de ikke er ens - skal den skrive FEJL (eller noget)

På forhånd tak
Avatar billede arne_v Ekspert
04. august 2005 - 10:22 #1
Du sammenligner dem vel bare.

Form feltet må du kunne hente med .Text property og fra databasen
må du kunne hente med en Command med SQL query og ExecuteScalar.

Response har en Redirect metode. Fejlbesked kan vises i en Label.
Avatar billede chaser64 Nybegynder
04. august 2005 - 11:19 #2
Tja ok :-/

Jeg er lige gået over fra alm. asp, så det går lidt langsomt...

Min kode er:
----------------------------------------------------------------------------------------

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
data source=" & server.mappath("database.mdb"))
dbconn.Open()
sql="SELECT * FROM login"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script>

<script runat="server">

    Sub LoginBtn_Click(Sender As Object, E As EventArgs)

        If Page.IsValid Then
            If (UserName.Text = <%=??%>) And (UserPass.Text = <%=??%>) Then
                FormsAuthentication.RedirectFromLoginPage(UserName.Text, true)
                session("login") = "ok"
            Else
                Msg.Text = "DOOH!!!"
            End If
        End If

    End Sub

</script>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
    <form runat="server">
        <h2>Login Page
        </h2>
        <hr size="1" />
        <table>
            <tbody>
                <tr>
                    <td>
                        Username:</td>
                    <td>
                        <asp:TextBox id="UserName" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator id="Requiredfieldvalidator1" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserName"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td>
                        Password:</td>
                    <td>
                        <asp:TextBox id="UserPass" runat="server" TextMode="Password"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator id="Requiredfieldvalidator2" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPass"></asp:RequiredFieldValidator>
                    </td>
                </tr>
            </tbody>
        </table>
        <asp:button id="LoginBtn" onclick="LoginBtn_Click" runat="server" text="Login"></asp:button>
        <p>
            <asp:Label id="Msg" runat="server" forecolor="red"></asp:Label>
        </p>
    </form>
</body>
</html>


----------------------------------------------------------------------------------------
Avatar billede snepnet Nybegynder
07. august 2005 - 00:27 #3
hej :o)

hvad er customers? - du sætter datasource, og binder i din kode, men jeg kan ikke se at du har en kontrol med det id.

nå men - du henter noget i data i page_load, og hvis det er det du skal validere brugere op imod, er det lidt tidligt at hente det her.
jeg synes hellere du skal lave et simpelt opslag som - som arne forslog - og først gøre det når der er brug for det.

såhh...
    Sub LoginBtn_Click(Sender As Object, E As EventArgs)
        If Page.IsValid Then
            If (ValidateUser()) Then
                FormsAuthentication.RedirectFromLoginPage(UserName.Text, true)
                ' session("login") = "ok"
            Else
                Msg.Text = "DOOH!!!"
            End If
        End If
    End Sub

du skal så lave dig en metode som checker om brugeren er ok (og returnerer true hvis det er tilfældet), ved at forsøge at hente den specifikke bruger :
select username, password from login where username = '<det indtastede brugernavn>'

hvis du får en record tilbage, skal du så kontrollere om adgangskoden også matcher, og får du ikke noget tilbage, findes brugeren så bare ikke.

du kan se nogle eksempler her :

http://www.4guysfromrolla.com/webtech/110701-1.shtml
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=85

og ellers :
http://www.google.dk/search?l=da&q=asp.net+forms+authentication+database&spell=1

og ellers spørg løs, hvis der ikke var tilstrækkeligt i de links du fik.

mvh
Avatar billede snepnet Nybegynder
07. september 2005 - 16:55 #4
hvordan går det her?
mvh
Avatar billede chaser64 Nybegynder
03. oktober 2005 - 09:53 #5
Mit asp.net projekt er lagt lidt på hylden, men smid lige et svar - for det er jo ikke jeres skyld ;o)

Er sikker på at det virker =D
Avatar billede arne_v Ekspert
03. oktober 2005 - 10:33 #6
.
Avatar billede arne_v Ekspert
03. oktober 2005 - 12:33 #7
skulle snepnet ikke have haft halvdelen ?
Avatar billede snepnet Nybegynder
03. oktober 2005 - 21:42 #8
pr. konstatering - nej :oD
Avatar billede arne_v Ekspert
03. oktober 2005 - 21:45 #9
se i spm. 653060
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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