22. september 2004 - 19:10Der er
12 kommentarer og 1 løsning
if * then * else. sætning med PROBLEM :o)
Set conn=Server.CreateObject("ADODB.connection") Set oRSlogon=Server.CreateObject("ADODB.recordset") conn.connectionstring="DSN=DSNST" conn.Open
' Henter logon oplysninger oRSlogon.Open "SELECT * FROM users", conn
' DET ER I DENNE IF SÆTNING DET GÅR GALT... ' JEG HAR TJÆKKET AT username1 OG username HAR DEN SAMME VÆRDI ' OGSÅ password1 OG password... MEN DEN SKRIVER ALTID ' Du er IKKE logget korrekt ind ' HVAD ER DER GALT...??? If Request.Form("username1") = oRSlogon("username") AND Request.Form("password1") = oRSlogon("password") THEN
Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Else
Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
Prøv evt. at rette: If lcase(Request.Form("username1")) = lcase(oRSlogon("username")) AND lcase(Request.Form("password1")) = lcase(oRSlogon("password")) THEN
<trekkies> det vil ikke give nogen mening... der står jo også andet i min tabel end lige det ene logon... også hvis man bare gætter et eller andet der står i databasen er man logget ind.... det er jo ikke smart... ps der er ikke nogle af de eks der virker..
<superior> dit eks gjore i torien det samme som mit... :o(
jeg har prøvet at lave den sådan her
If Request.Form("username1") = "eksempel" AND Request.Form("password1") = "eksempel" THEN
det virker... og alt i min database står med små bogstaver uden mellemrum, og det gør mit indtastede også...
jeg ved ikke lige hvad der går galt der men vil gerne vide det :os
Hvorfor ikke lave en WHERE på din SQL sætninge og lade database finde brugernavn og password?
Eller skal du havde et loop i koden som tjekke alle posterne igemme for korrekt brugernavn og password:
oRSlogon.Open "SELECT * FROM users", conn
' DET ER I DENNE IF SÆTNING DET GÅR GALT... ' JEG HAR TJÆKKET AT username1 OG username HAR DEN SAMME VÆRDI ' OGSÅ password1 OG password... MEN DEN SKRIVER ALTID ' Du er IKKE logget korrekt ind ' HVAD ER DER GALT...???
fundet=false Do While (NOT oRSlogon.EOF and fundet=false) If lcas(Request.Form("username1")) = lcase(oRSlogon("username")) AND lcase(Request.Form("password1")) = lcase(oRSlogon("password")) THEN fundet=true Response.Write "<h1>Du er nu logget korrekt ind</h1>" End If oRSlogon.Movenext loop if fundet=false then Response.Write "<h1>Du er IKKE logget korrekt ind</h1>" End if
oRSlogon.Open "SELECT * FROM users WHERE username ='"&replace(Request.Form("username1"),"'","")&"' AND [password]='"&replace(Request.Form("password1"),"'","")&"'", conn if not oRSlogon.EOF then Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Else
Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
<!-- Top grafik --> <table width="770" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td height="15"><img src="pic/space.gif"></td> </tr> <tr> <td width="100%"><img src="pic/top.gif"></td> </tr> <!-- /Top grafik --> <tr> <td width="100%" background="pic/table.gif"> <table width="100%" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td> <!-- Login check --> <% If request.form("num") = 1 then set num = nothing
Set conn=Server.CreateObject("ADODB.connection") Set oRSlogon=Server.CreateObject("ADODB.recordset") conn.connectionstring="DSN=DSNST" conn.Open ' Henter logon oplysninger oRSlogon.Open "SELECT * FROM users", conn ' PROBLEMET ' Tjek om login og password er korrekte If Request.Form("username1") = oRSlogon("username") AND Request.Form("password1") = oRSlogon("password") THEN
'Hvis korrekt sættes session til JA Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Else 'Hvis forkert sættes ingen session til NEJ Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
Hvis du har mere end en bruger kan du ikke bare lave det med en if sætningen hvis du henter alle brugerne ud som i løsningen 22/09-2004 19:38:17. Så brug løsningen i 22/09-2004 19:40:15 der bruger den SQL til at finde brugeren og du har kun en if sætningen til at tjekke det.
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.