14. august 2003 - 18:10Der er
11 kommentarer og 4 løsninger
Opret kun 1 gang
Hejsa...
Jeg er ved at lave et system på min hjemmeside så mine besøgende kan oprette sig som brugere. Men jeg har problemmer med at lave scriptet sådan at det tjekker at der ikke er 2 ens Brugernavne. Dvs. at når en bruger opretter sig skal den tjekke i databasen at der ikke er en anden der har valg det brugernavn han prøver at oprette.
Problemmet er nu at når en bruger opretter sig så skriver den at brugernavnet er taget vælg et andet. Selv om brugernavnet er nyt i databasen, men brugeren bliver alligevel oprettet...
Kan i rettet fejlen eller har i en anden kode der virker bedere så hjælp mig :-)
Her er min kode: ---------------------------- Response.Buffer = True
Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE brugernavn = '" & Request("formbrugernavn") & "'") strBrugerOk = rs("antal") rs.Close Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE email = '" & Request("email") & "'") strEmailOk = rs("antal") rs.Close
if strBrugerOk <> "0" then Response.Write "Fejl Brugernavn" Response.Write "<br>" Response.Write strBrugerOk else if strEmailOk <> "0" then Response.Write "Fejl Email" Response.Write "<br>" Response.Write strEmailOk else
Hedder indtastningsfeltet til brugernavn "formbrugernavn"? før den første linje at indsætte følgende 2 linjer for at finde ud af, om det er det rigtige, databasen bliver spurgt om:
hmm jeg synes din IF statement er lidt rodet. Den opretter brugeren hvis strBrugerOk <> "0" eller hvis strEmailOk <> "0".
Jeg ville nok lave den sådan her:
set rs = Conn.Execute("SELECT brugernavn FROM bruger WHERE brugernavn ='"&Request.Form("formbrugernavn")&"'") If Not rs.EOF Then strBrugerOk = false Else strBrugerOk = true End If
If strBrugerOk Then Session.LCID = 1030 datologin = (Date()) brugerbillede = "/Images/Userprofil/intetbillede.gif"
strbrugernavn = Request("formbrugernavn") fornavn = Request("fornavn") password = Request("password") efternavn = Request("efternavn") website = Request("website") email = Request("email") land = Request("land") postnummer = Request("postnummer") alder = Request("alder") profiltekst = Request("profiltekst") if profiltekst = "" then profiltekst = "Ingen profiltekst" end if signatur = Request("signatur") dato = Request("dato") vip = "False" viphar = "False" vipopret = "False" point = "0" snydt = "0"
adduser.asp - Form til oprettelse af bruger. adduser-tjek.asp - ASP Script der tjekker om bruger eksistere. adduser-gem.asp - Hvis bruger ikke eksistere gemmer den data.
Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE brugernavn = '" & Request("formbrugernavn") & "'") strBrugerOk = rs("antal") rs.Close Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE email = '" & Request("email") & "'") strEmailOk = rs("antal") rs.Close
if strBrugerOk <> 0 then Response.Write "Fejl Brugernavn" Response.Write "<br>" Response.Write strBrugerOk elseif strEmailOk <> 0 then Response.Write "Fejl Email" Response.Write "<br>" Response.Write strEmailOk else
Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE brugernavn = '" & Request("formbrugernavn") & "'") strBrugerOk = rs("antal") rs.Close Set rs = Conn.Execute("SELECT COUNT(id) AS Antal From bruger WHERE email = '" & Request("email") & "'") strEmailOk = rs("antal") rs.Close
if strBrugerOk <> 0 then Response.Write "Fejl Brugernavn" Response.Write "<br>" Response.Write strBrugerOk elseif strEmailOk <> 0 then Response.Write "Fejl Email" Response.Write "<br>" Response.Write strEmailOk else
Så er der mere kode end du har vist os her, hvis det virkelig opfører sig som du siger.
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.