Avatar billede emetico Nybegynder
18. december 2003 - 00:58 Der er 16 kommentarer og
1 løsning

Login koder

Hej jeg er total ny herinden ;-)
og er også ny til asp.

Jeg har lavet en database i access, med bruger & klaner.
Men nu skal jeg kunne logge ind på den side jeg har lavet.
Jeg har 2 boxes, et med brugernavn & et med Password også en trykknap der hedder send samt et afkrudsningfelt med Gem. hver box skal vel have et referat at henvende sig til ? samt et security der tjekker om de er oprettet?
Nogen der kan hjælpe med det ?
min database har jeg kaldt kb
Avatar billede thesurfer Nybegynder
18. december 2003 - 01:03 #1
Jeg vil anbefale at du læser lektionerne på http://www.html.dk/tutorials/asp/ og specielt lektionerne 17-22 der omhandler Access database.

Og da du er ny her på Eksperten, bedes du læse:
Ekspertens regler - http://www.eksperten.dk/regler.phtml
Vejledning til nye brugere af Eksperten.dk - http://expfaq.1go.dk
Avatar billede emetico Nybegynder
18. december 2003 - 01:27 #2
Jov tak ;-)
jeg har læst det:
men jeg kan uddybe mit spørgsmål lidt mere.

mit html ser sådan her ud.

<td width="150" valign="middle" align="center" bgcolor="#333333"><b>-!Login!-</b></td>
                  </tr>
                  <td width="70%" bgcolor="#808080">Brugernavn<br><input type="text" name="T1" size="20"><br>Password<br><input type="text" name="T2" size="20">
                      </form><input type="button" value="Send" name="B3"> Gem?<input type="checkbox" name="C1" value="ON"><br>Opret spiller?
                    </form>
                </table>

og jeg skulle gerne have det sidste med hvad jeg skal skrive for at man kan logge ind ;-)
Avatar billede thesurfer Nybegynder
18. december 2003 - 01:35 #3
Du mener for at sende oplysningerne? Der skal du bruge en submit knap.
En normal form ser sådan ud:
<form name="login" action="login.asp" method="post">
Username: <input type="text" name="username" value="">
<br>
Password: <input type="password" name="password" value="">
<br>
<input type="submit" name="submit" value="Submit">
</form>

Når man klikker på submit-knappen, sendes indholdet af felter med til siden login.asp. method=post indikerer at dataene sendes via form elementerne, og ikke via urlen.
På server siden aflæser man indholdet af felterne "username" og "password" hed request.form("username") og request.form("password").
Avatar billede emetico Nybegynder
18. december 2003 - 01:51 #4
Arha ja.. Det ser rigtigt ud ;-)
Så skal jeg bare have lavet en session kaldet login.asp
som der skal referes til index.asp
Det må man kunne læse sig til hæhæ
Tak for hjælpen
Avatar billede thesurfer Nybegynder
18. december 2003 - 01:59 #5
Det er egentlig meget enkelt, hvis du deler opgaven op i små dele..

* Formen sender oplysninger som læses på server side.
Se "Lektion 11: Værdier af elementer i en formular" - http://www.html.dk/tutorials/asp/lektion11.asp

* Værdierne fra formen kontrolleres op mod data fra en database.
Se "Lektion 19: Hent data fra databasen" - http://www.html.dk/tutorials/asp/lektion19.asp

* Hvis oplysningerne, opgivet af brugeren, er korrekte, gemmes info i f.eks. en session.
Se "Lektion 12: Sessions" - http://www.html.dk/tutorials/asp/lektion12.asp
Avatar billede thesurfer Nybegynder
18. december 2003 - 02:03 #6
Og når du arbejder med en database, er det vigtigt at erstatte ' (apostrof) med '' (2 gange apostrof). I lektion 20 ("Indsæt data i databasen") skriver de:

<citat>
SQL sætninger med ' tegnet

Hvis du giver brugeren mulighed for at indtaste noget tekst i en formular, og denne tekst indeholder tegnet ' (quot) vil den pågældende record ikke kunne indsættes i databasen. Løsningen er at erstatte et enkelt quote (') med dobbelt quote ('').

Dette kan gøres med funktionen Replace på følgende måde:

<%
strTekst = Request.Form("Tekstfelt")
strTekst = Replace(strTekst, "'", "''")
%>

Alle ' tegn i teksten erstattes af dobbelt ' tegn, dette vil blive tolket som en enkelt ' af databasen.

</citat>

Det er mere for en sikkerhedsskyld at man erstatter ' med ''. Ellers ville man kunne skaffe sig adgang til en gyldig session, ved at indtaste følgende som brugernavn:

' or 1 = 1
Avatar billede emetico Nybegynder
18. december 2003 - 03:03 #7
Arh. så min login.asp skal se sådan ud ?

<html>
<head>
<title>tid og dato</title>
</head>
<body>
<%
' Tjek om login og password er korrekte
If Request.Form("login") = "asp" AND Request.Form("password") = "asp" Then

' Hvis korrekt sættes session til JA
Session("login") = "JA"
Session.Timeout = 30
Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Response.Write "<p><a href='index.asp'></a></p>"


Else


' Hvis forkert sættes ingen session til NEJ
Session("login") = "NEJ"
Session.Timeout = 30
Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
Response.Write "<p><a href='index.asp'></a></p>"

End If
%>
</body>
</html>

men mangler der ikke noget database et eller andet ?
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:18 #8
Jo :)
Lige nu har du 'hardcoded' brugernavn og kodeord. Dvs det er kun brugernavn/kodeord kombinaitonen "asp"/"asp" der virker.

<%
Option Explicit ' Bør ALTID være den første linie i dine asp dokumenter!

If (Request.ServerVariables("REQUEST_METHOD") = "POST") then

' Definer ALTID dine variabler:
dim strBrugernavn, strKodeord

strBrugernavn = replace(request.form("username"), "'", "")
strKodeord = replace(request.form("password"), "'", "")

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from TABELNAVN where brugernavn ='" & strUsername & "' AND kodeord = '" & strKodeord & "'"

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if (not rs.bof) and (nor rs.eof) then
' brugernavn og password er fundet, sæt session til JA
Session("login") = "JA"
Session.Timeout = 30
Response.Write "<h1>Du er nu logget korrekt ind</h1>"
Response.Write "<p><a href='index.asp'></a></p>"

else

session("login") = "nej"
session.abandon
response.write "Forkert brugernavn eller kodeord"

end if

%>
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:18 #9
hmm.. fjern session.abandon :)
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:37 #10
Hvis du ikke allerede har fundet ud af det, så skal der være et ekstra "end if" lige før "%>".

- "/cgi-bin/database.mdb" skal rettes, så den peger på din database..
- TABELNAVN skal rettes til navnet på din tabel i din database..
- Linien  where brugernavn ='" & strUsername & "' AND kodeord = '" &:
-- ret "brugernavn" til navnet på feltet til brugernavn
-- ret "kodeord" til navnet på feltet til kodeord
Avatar billede emetico Nybegynder
18. december 2003 - 03:40 #11
strBrugernavn = replace(request.form("username"), "'", "")
strKodeord = replace(request.form("password"), "'", "")

username & password skal jeg skrive hvad jeg har kaldt det i min database ?

ellers tak for hjælpen, nu er jeg næsten færdig med mit loging script ;-)
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:45 #12
Nej. "username" og "password" er navnene på dine felter i din form.
Avatar billede emetico Nybegynder
18. december 2003 - 03:49 #13
oki så jeg skjal skrive StrPassword og StrBrugernavn ;-)
Tak skal du have ;-)
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:50 #14
Jeg ligger lige et svar, som du kan acceptere, når du har fået det til at virker.
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:52 #15
huh? Det skal stå som jeg har skrevet det :)
I mit eksempel, hedder felterne i databasen "brugernavn" og "kodeord", og de er i en tabel der hedder "TABELNAVN".
Avatar billede emetico Nybegynder
18. december 2003 - 03:55 #16
jeps det er det jeg mener hehe ;-)
mine hedder StrPassword og StrBrugernavn ;-)
her er dine points.
og endnu engang tak for hjælpen
Avatar billede thesurfer Nybegynder
18. december 2003 - 03:56 #17
Det var så lidt :)
Takker for points.
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