I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja. Du kan bare replace med to ' det er lige så godt.
Jeg vil lige tilføje at du bør altid havde replace ' med '' inden man skriver til databasen kolonner som er defineret som tekst felt. I hverttilfælde hvis der er et kolonne en bruger kan rette i.
' opfattes af SQL som start og slut på en streng. '' opfatess som et rigtigt ' som det var ment altså "Ole's bil"
Synes godt om
Slettet bruger
28. april 2002 - 00:26#2
eagleeye>>
hvad er det du siger jeg gør forkert ???
er ikke helt med på historien om ' og " i henhold til ovenstående kode
hvis du vil være lidt mere sikker kan du også tjekke på at den ahr hendtet det rigtige eks:
strSQL ="SELECT * FROM admin WHERE username = '" & strUsername & "' AND Password = '" & strPassword & "'" set rs = conn.execute(SQL) if LCase(rs("username")) = LCase(strUsername) then 'LOGIN OK else 'KUNNE IKKE FINDE BRUGEREN end if
Så har du både databasen til at finde et korrekt brugernavnet, samt du tjekker at brugernavnet er korrekt. Hvis en eller anden har andre metoder til at "snyde" SQL'en, har du en ekster sikkerhed i at du tjekker det databasen finder manuelt bagefter...
Om du laver en ' om til to ' eller mellemrum eller ingenting er sådan set ligemeget. Det handler om at få en ' lavet om.
Synes godt om
Slettet bruger
28. april 2002 - 00:35#5
undskyld jeg belemrer dig med dette, men er dette helt forkert ?
' bruges til at tjekke om brugeren finde i db ved login ' Sender resultaterne fra tilføj links til databasen ' Database connection Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("forum.mdb")
strSQL ="SELECT * FROM bruger WHERE name = UCase('"& request.form("navn") &"')" AND Password = UCase('"& request.form("password") &"')" set rs = conn.execute(SQL) if LCase(rs("navn")) = LCase(strUsername) then 'LOGIN OK else 'KUNNE IKKE FINDE BRUGEREN end if
Jeg ville lave den sådan her så du får ' ud af inputet fra formen:
strUsername = Trim(Replace(Request.Form("navn"),"'","")) strPassword = Trim(Replace(Request.Form("password"),"'","")) strSQL ="SELECT * FROM bruger WHERE name = UCase('"& strUsername &"')" AND Password = UCase('"& strPassword &"')" set rs = conn.execute(SQL) 'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt. if not rs.EOF then if LCase(rs("navn")) = LCase(strUsername) then 'LOGIN OK else 'INGEN BRUGER FUNDET 'Eller en blev fundet men databasen bruger navn passer ikke med det 'indtastede brugernavn end if else 'INGEN BRUGER FUNDET end if
Synes godt om
Slettet bruger
28. april 2002 - 00:47#7
hvorfor har du to else funktioner ?? den laver jo det samme i begge to eller er det bare mig ?
Ja det er rigtig.... Den ene er fordi der ikke kunne findes en bruger med brugernavnet og passwordet. Den anden er fordi der kunne findes en med brugernavnet og passeordet, men det indtastede bruger navn passer ikke med det databasen har fundet.. hvis det giver mening.
Du kan skrive den om til:
if (not rs.EOF) AND (if LCase(rs("navn")) = LCase(strUsername)) then 'LOGIN OK else 'INGEN BRUGER FUNDET end if
hmmm skulle være: if (not rs.EOF) AND (LCase(rs("navn")) = LCase(strUsername)) then 'LOGIN OK else 'INGEN BRUGER FUNDET end if
Synes godt om
Slettet bruger
28. april 2002 - 00:56#10
ahaaa... det vil sige den øverste af de to kan jeg ligge et indput der siger at passwordet ikke passer til brugernavnet og i den sidste at brugeren ikke eksister...
Synes godt om
Slettet bruger
28. april 2002 - 00:58#11
den mener der er en Syntax error i denne: strSQL ="SELECT * FROM bruger WHERE name = UCase('"& strUsername &"')" AND Password = UCase('"& strPassword &"')"
"det vil sige den øverste af de to kan jeg ligge et indput der siger at passwordet ikke passer til brugernavnet og i den sidste at brugeren ikke eksister..."
Både ja og nej. Den øverste er hvis nogen finder en måde at "snyde" SQL-sætningen ved login (du har sikker læst om man ska skrive: ' or '1'='1 i brugernavn og password). Den er du sikret mod, men hvis nu en eller anden har fundet en ny/anden måde så er den første en ekstra tjek på at det indtastede brugernavn passer med det som ligger i databasen. Hvis du ikke havde Replace "'" med "" så ville: if LCase(rs("navn")) = LCase(strUsername then fange ' or '1'='1 da man indtaster brugernavnet (' or '1'='1) men i databasen finder den måske bruger navn eagleeye fordi det bruger navn ligger ført i databasen.....Så det er sådan set bare en ekstra sikkerhed i login funktionen. Håber det giver lidt mening.
Den sidste kan man sige: Brugernavn og Password passer ikke sammen.
arh ups det har jeg ikke set for nu.. du execute (SQL) men SQL-sætningen er i strengen strSQL så ret set rs = conn.execute(SQL) TIL: set rs = conn.execute(strSQL)
Synes godt om
Slettet bruger
28. april 2002 - 01:50#26
ok... så sidste ting.... jeg har jo kun et indput til at send folk hend... da det hele ende i samme eller hvad ?
if not rs.EOF then if LCase(rs("navn")) = LCase(strUsername) then 'LOGIN OK else 'INGEN BRUGER FUNDET 'Eller en blev fundet men databasen bruger navn passer ikke med det 'indtastede brugernavn end if else response.write "ingen brugere fundet" end if
Den side man skal til hvis login er ok kan du ligger ved 'LOGIN OK
if not rs.EOF then if LCase(rs("navn")) = LCase(strUsername) then 'LOGIN OK Response.Redirect("hovedsiden.asp") else 'INGEN BRUGER FUNDET 'Eller en blev fundet men databasen bruger navn passer ikke med det 'indtastede brugernavn end if else response.write "ingen brugere fundet" end if
dam jeg er ved at være træt af Eksperten i aften... Jeg får konstat "Unable To Find Page" når jeg laver svar.. og jeg glemmet nogle gange copy mit svar...
Nå men din SQL finde ikke brugeren fordi der står strnavn og ikke strUsername. Prøv denne SQL: strSQL ="SELECT * FROM bruger WHERE UCase(navn) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
Synes godt om
Slettet bruger
28. april 2002 - 02:22#35
kanont.... så virker det &:-D også en længere kamp men det lykkedes......
takker rigtigt mange gange for din hjælp.... og din tålmodighed med mig
Når ja. Jeg må hellere lige sige jeg har oprettet en bruger: Brugernavn:Test Password: Test Email: test@test.mm
Du kan bare slette den igen...
Synes godt om
Slettet bruger
28. april 2002 - 02:27#37
det gør jeg når det engang er færdigt *SS*
Synes godt om
Ny brugerNybegynder
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.