Avatar billede klinemann Nybegynder
16. maj 2005 - 01:02 Der er 50 kommentarer og
1 løsning

Log ind script

<%
Option Explicit
Dim username, password

username = Request.Form("username")
password = Request.Form("password")

if (username = "251284") and (password = "81") then
Response.Cookies("admincookie") = "True"
end if

Response.Redirect("root.asp?page=7")
%>

er der nogle der kan lave dette script om, så den læser alle Brugernavne og kodeord fra en access database.

på forhånd tak
Avatar billede busschou Praktikant
16. maj 2005 - 01:07 #1
sådan her?:
--
<%
Option Explicit
Dim username, password

username = Replace(Request.Form("username"),"'","''")
password = Replace(Request.Form("password"),"'","''")

sql = "Select * From user_table Where user = '"&username&"' And pass = '"&password&"'"
set rs = conn.execute sql

if not rs.eof then
Response.Cookies("admincookie") = "True"
else
Response.redirect("FEJLSIDE")
end if

Response.Redirect("root.asp?page=7")
%>
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:08 #2
skal jeg ikke have en connection til databasen osse?
Avatar billede busschou Praktikant
16. maj 2005 - 01:08 #3
Der laves replace på ' til '' for at undgå sql injektion
Hvis du vil have lidt bedre sikkerhed bør du overveje bruge sessions i stedet for cookies
Avatar billede busschou Praktikant
16. maj 2005 - 01:08 #4
jo da :o)
Avatar billede busschou Praktikant
16. maj 2005 - 01:09 #5
<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
' Åben databaseforbindelsen
Conn.Open DSN
%>
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:10 #6
vil du ikke skrive den der connection osse? - jeg er ikke så lyn-klog... ved godt der er torturials osv, men har ikke rigtig tid til det nu. på forhånd tusind tak...
Avatar billede busschou Praktikant
16. maj 2005 - 01:11 #7
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

Option Explicit
Dim username, password

username = Replace(Request.Form("username"),"'","''")
password = Replace(Request.Form("password"),"'","''")

sql = "Select * From user_table Where user = '"&username&"' And pass = '"&password&"'"
set rs = Conn.execute sql

if not rs.eof then
Session("admincookie") = "True"
else
Response.redirect("FEJLSIDE")
end if
conn.close
set Conn = nothing
Response.Redirect("root.asp?page=7")
%>
Avatar billede busschou Praktikant
16. maj 2005 - 01:12 #8
Du skal så blot rette stien til databasen. Du kan vælge at "mappe" den som herover eller du kan skrive den fulde sti dvs d:\blabla\www\ditdoæne\DB\dindatabase.mdb ..i den dur
Avatar billede busschou Praktikant
16. maj 2005 - 01:13 #9
jeg rettede det til en session... men det er selvfølgelig frit valg om du vil benytte sessions eller cookies
Hvis du har små prblemer...så er html.dk et godt begynder sted :o)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:16 #10
den brokker sig over option explicit... hvad er det egentlig for noget? - er det noget der SKAL være der?
Avatar billede ranglen Nybegynder
16. maj 2005 - 01:17 #11
'frit valg mellem sessions eller cookies'

Jeg vil nok påstå, at benytter man cookies, kan man lige så godt lade være at lave et loginsystem
Avatar billede busschou Praktikant
16. maj 2005 - 01:18 #12
nej det skal ikke være der... det er vist nok så vidt jeg husker noget som betyder at den tjekker at alle dine variable er erklæret korrekt
Avatar billede busschou Praktikant
16. maj 2005 - 01:19 #13
den skal stå øverst option explicit... det var min fejl
Så sæt den over al koden :o)
Avatar billede ranglen Nybegynder
16. maj 2005 - 01:20 #14
Grunden til brokkeriet er, at option explit skal stå som første kodelinie
Avatar billede busschou Praktikant
16. maj 2005 - 01:20 #15
<%
Option Explicit
Dim username, password, Conn, rs

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

username = Replace(Request.Form("username"),"'","''")
password = Replace(Request.Form("password"),"'","''")

sql = "Select * From user_table Where user = '"&username&"' And pass = '"&password&"'"
set rs = Conn.execute sql

if not rs.eof then
Session("admincookie") = "True"
else
Response.redirect("FEJLSIDE")
end if
Conn.close
set Conn = nothing
Response.Redirect("root.asp?page=7")
%>
Avatar billede busschou Praktikant
16. maj 2005 - 01:21 #16
Dim username, password, Conn, rs, DNS
sådan.. De skal lige alle med når du bruger option explicit ;o)
Avatar billede busschou Praktikant
16. maj 2005 - 01:21 #17
det er vist godnat for mig
Dim username, password, Conn, rs, DNS, sql
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:22 #18
Avatar billede busschou Praktikant
16. maj 2005 - 01:23 #19
Der står linje 1011
Option Explicit skal stå aller aller øverst.. linje 1
Avatar billede busschou Praktikant
16. maj 2005 - 01:26 #21
hvis det er fordi du includer siderne eller noget?
Så skal du kun bruge option explicit een gang øverst på hoved siden :o)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:28 #22
jeg bruger querystrings
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:30 #23
hvis det har noget at sige?
Avatar billede busschou Praktikant
16. maj 2005 - 01:32 #24
Det har det da bestemt for så skal
---
username = Replace(Request.Form("username"),"'","''")
password = Replace(Request.Form("password"),"'","''")
---
skiftes ud med
---
username = Replace(Request.Querystring("username"),"'","''")
password = Replace(Request.Querystring("password"),"'","''")
Avatar billede busschou Praktikant
16. maj 2005 - 01:33 #25
ellers post lidt mere kode hvis den er helt gal :o)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:35 #26
jeg tror jeg er en dør til det her.. det nok kun for kloge mennesker.. :-)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:37 #27
det hele ligger faktisk i én asp fil
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:37 #28
vil du have den?
Avatar billede busschou Praktikant
16. maj 2005 - 01:38 #29
nej det er for alle...men det tager sin tid :o)..
Hmm men den er jo monster lang ikke?
Prøv ad
Måske en anden gang det er en fordel at dele den op ;o)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:39 #30
:-) - jeg zipper den til dig, det er vel rarest?
Avatar billede busschou Praktikant
16. maj 2005 - 01:39 #31
oki
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:40 #32
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:41 #33
Avatar billede busschou Praktikant
16. maj 2005 - 01:42 #34
kigger på den
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:44 #35
yep... jeg venter bare så... men hvis du ved hvad der er galt, må du godt sende det stykke kode der er rettet... så jeg ved hvad der var glat :-D - det lærer jeg da lidt ved..
Avatar billede busschou Praktikant
16. maj 2005 - 01:46 #36
damn en gang....sorry..hehe
øhh bøhh.. synes at kunne se at din form har method="post" så du skal bruge det med request.form. Du har ikke sat det ind i koden som jeg skrev?
Så sæt dette ind i stedet for det gamle du havde (og så dropper vi lige option explicit til at starte med
-----
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

username = Replace(Request.Form("username"),"'","''")
password = Replace(Request.Form("password"),"'","''")

sql = "Select * From user_table Where user = '"&username&"' And pass = '"&password&"'"
set rs = Conn.execute sql

if not rs.eof then
Session("admincookie") = "True"
else
Response.redirect("FEJLSIDE")
end if
Conn.close
set Conn = nothing
Response.Redirect("root.asp?page=7")
%>
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:50 #37
/bergh/Default.asp, line 1019

set rs = Conn.execute sql
----------------------^
Avatar billede busschou Praktikant
16. maj 2005 - 01:55 #38
prøv
Set rs = Conn.execute(sql)
Avatar billede klinemann Nybegynder
16. maj 2005 - 01:59 #39
nu melder den ikke fejl... men gør den det samme som før med cookies?
Avatar billede klinemann Nybegynder
16. maj 2005 - 02:00 #40
for mine spærrede sider er spærret med cookie...
Avatar billede busschou Praktikant
16. maj 2005 - 02:00 #41
nope du skal lige rette denne
Session("admincookie") = "True"
til
Response.Cookies("admincookie") = "True"
..---
Endvidere skal denne rettes
Response.redirect("FEJLSIDE")
til en evt fejlside eller fejl medelelse når der indtastes forkert
Avatar billede busschou Praktikant
16. maj 2005 - 02:03 #42
Men hvis du sætter bare rimelige krav til sikkerhed...så bør du seriøst overveje lave det om til sessions engang
Avatar billede klinemann Nybegynder
16. maj 2005 - 02:05 #43
ja, nu virker det sørerme, smider du et svar så du kan få point..

Jeg siger tusind tak for hjælpen, det var fandme rart at komme videre :-D

Håber der er noget jeg kan gøre for dig en dag.

Mvh. Mark Madsen
Avatar billede klinemann Nybegynder
16. maj 2005 - 02:05 #44
ja, jeg vil lige lære lidt mere om sessions en dag..
Avatar billede busschou Praktikant
16. maj 2005 - 02:08 #45
Jamen svar :o) .. godt det virker og det var da så lidt
Vil i øvrigt også foreslå dig ..på sigt..engang..at lave dit design om
Så du ikke har een side med 1200 linjer kode, men deler det op
Det gør det nemmere hvis du engang skal lave noget om :o)

godnat og sov godt ;o) hehe
Avatar billede klinemann Nybegynder
16. maj 2005 - 02:08 #46
for at vise brugernavn skal man bruge sessions ik?
Avatar billede busschou Praktikant
16. maj 2005 - 02:11 #47
Nej du kan også gemme det i en cookie
Men jeg vil anbefale sessions
fx følgende der hvor du laver login
Session("brugernavn") = username
Så kan du hele tiden refere sådan her
response.write "Du er "&Session("brugernavn")&" velkommen til"
Avatar billede klinemann Nybegynder
16. maj 2005 - 02:16 #48
hvordan laver du så spærringer på siderne?
Avatar billede hifi4all Nybegynder
16. maj 2005 - 06:24 #49
Hvis det har interesse har jeg loginscript med Access 2000 db liggende - både med Session login og login via cookies.

Scriptet indeholder en bruger del, og admin del, og derudover en ekstra sikkerhed i forbindelse med cookies (de kan jo omdøbes i f.eks. Opera)

Scriptet tillader beskyttelse af alle .asp sider med blot et simpelt stykke kode.

Sig til hvis det har interesse, da jeg ellers ikke vil bruge tiden på at rette scriptet til!
Avatar billede hifi4all Nybegynder
16. maj 2005 - 06:28 #50
Hov glemte lige...

Systemet tillader også at nye brugere kan oprette sig.
Disse får efterfølgende tilsendt en aktiveringsmail via Jmail..

Igen, sig til hvis det har interesse! ;o)
Avatar billede busschou Praktikant
16. maj 2005 - 10:13 #51
Sorry..gik altså i seng :o)
Hvis du laver det i sessions
login side:
---
session("loggetin") = "true"
---
øverst i beskyttede sider :
---
if session("loggetin") <> "true" then
  response.redirect("logind_side.asp")
end if
---
Tilsvarende med cookies hvis det er
Så princippet er at du sætter en session til true når de logger ind
På de beskyttede sider tjekker du så allerførst om denne session er sat til true
Hvis ikke den er det så smider du dem væk til login siden, og ellers , ja så er de logget ind og ser din side
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
Kurser inden for grundlæggende programmering

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