08. september 2002 - 21:14Der er
23 kommentarer og 1 løsning
Tjek om data eksistere i database....
Hej!
Jeg sidder og roder med lidt ASP, og har der i blandet noget login, hvor der kan ændres brugernavn. Men den tjekker ikke om navnet findes i forvejen, selvom den burde gøre det. Koden ser ud som følger:
IF Request.Querystring("user") = "newupdate" then sqltjek = "SELECT * FROM bruger" SET rstjek = Conn.Execute(sqltjek) IF rstjek("brugernavn") = Request.Form("Brugernavn") = TRUE THEN Response.Write ("<p> Det valgte brugernavn er brugt!<br><a href=java script:history.go(-1)>Tilbage...</a>") ELSE sql = "Insert into bruger ....(Har kortet det af!!!).... Set RS = Conn.Execute(SQL) Response.Redirect ("index.asp?id=" & Request.Querystring("id")) End If
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.
sqltjek = "SELECT * FROM bruger" SET rstjek = Conn.Execute(sqltjek) IF rstjek("brugernavn") = Request.Form("Brugernavn") = TRUE THEN
Denne SQL sætninger sqltjek = "SELECT * FROM bruger" hendter alle brugernavn ud af databasen.
Det den skulle hendte ud var den record hvor brugernavnet findes og hvis brugernanvet ikke findes er det OK at ændre til det...... men hvis man ikke ændre brguernavnet så skal den ikke fejle så du må angive en uink ID for brugeren så du også kan tjekke om det er den samme bruger... hvis du forstår?
Dernæst denne if sætning er der et = TRUE for meget: IF rstjek("brugernavn") = Request.Form("Brugernavn") = TRUE THEN
IF rstjek("brugernavn") = Request.Form("Brugernavn") THEN
og så her jeg denne SQL som tjekke om brugernaet findes:
strSQL = "SELECT * FROM members WHERE username='" & username & "' AND memberID <> " & Request.Form("memberID") & ";" set rs = myConn.Execute(strSQL) if (rs.BOF AND rs.EOF) then
....INDSÆT nye data..
else Response.write "Username allready in use. Select a new." end if
Hver bruger har sit eget id, men hvis peter nu vil ændre sit brugernavn fra peter til hansen, og hansen er taget, så har det jo et andet id, så jeg kan jo ikke lave en sql der siger sql = "Select * FROM bruger WHERE id = ...... Det går jo galt, og hvis jeg siger at den skal søge hvor brugernavnet hansen finde vil den jo melde fejl hvis den ikke findes. Hvad skal skrives?
Fejlen peger på den linie der starter med SET rs = Conn....., så det er jo en eller anden fejl i sql-sætningen. Den melder fejl ved både opdatering og oprettelse!
Så kom jeg lidt længere. Nu påstår den at brugernavnet findes. Det er jo i og for sig også rigtigt, men jeg burde altså have lov til at opdatere brugeren!
Denne SQL sætning finder ingen/en record hvor brugernavn = indtastede brugernevn og id forskellig fra den bruger bruger som er ved at rette brugernavnet. Så hvis man ikke retter i brugernavnet så vil den ikke finde den record hvor brugernavne=brugernav_fra_formen OG unik_ID = ID_fra_form:
sqltjek2 = "SELECT * FROM bruger WHERE brugernavn = '" & Request.Form("brugernavn") & "' AND id <> " & Request.Querystring("userid")
Fandt lige en fejl i indholdet af databasen! Der var 2 brugere med samme brugernavn! Så det virker nu! Takker for hjælpen!
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.