Avatar billede babyworm Nybegynder
16. april 2004 - 09:57 Der er 7 kommentarer og
1 løsning

Et lille problem i edituser.asp

Hejsa,

Jeg har lavet en fil som hedder edituser.asp

Det er meningen at den skal, alt efter id, hente nogle data ud fra en database, og så kan man redigere i dem og ligge dem tilbage.

Desværre er jeg løbet ind i problemer. Jeg har fået lavet en kode der gør at man ikke kan oprette en bruger med samme brugernavn som et andet i databasen. De giver en sjov fejl.

Når jeg henter mine data ind i inputfelterne og skal redigere i nogle af informationerne, så kan jeg ikke redigere i den fordi den siger at brugernavnet allerede eksisterer. Selvfølgelig gør det det, når det er en bruger jeg henter frem og brugernavnet bliver smidt ind i et input felt..

Hvordan undgår jeg dette problem?

Min kode:

<%
strCmd = Request.QueryString("cmd")

openConn()

strUserid        = Request.querystring("id")

If strCmd = "update" Then


    'strUserid    = Request.Form("userid")
    strUsername    = replace(Request.Form("username")&"","'","''")

    Set rs2 = connection.execute("SELECT UserId FROM Users WHERE Username = '" & strUsername & "'")
   
    If (rs2.bof or rs2.eof) Then


        strUsername        = replace(Request.Form("username")&"","'","''")
        strPassword        = replace(Request.Form("password")&"","'","''")
        strCompany        = replace(Request.Form("company")&"","'","''")
        strFullname      = replace(Request.Form("fullname")&"","'","''")

            if len(Request.Form("redirect")) = 0 then
                strRedirect    = "error.asp"
            Else
                strRedirect    = replace(Request.Form("redirect")&"","'","''")
            end if

        strGroup        = replace(Request.Form("group")&"","'","''")


        strSQL = "UPDATE Users SET Username='" & strUsername & "',[Password]='" & strPassword & "',Redirect='" & strRedirect & "',Company='" & strCompany & "',Fullname='" & strFullname & "',[Group]='" & strGroup & "' WHERE Userid=" & strUserid
            connection.Execute(strSQL)
            'Response.Write(strSQL)

%>

        <h1>Brugeren er nu rettet!</h1><br>
        <a href="overview.asp">Tilbage til oversigten</a>
<%
    Else
%>

<h1>Fejlmeddelse</h1>
<font color=red>Brugernavnet eksisterer allerede!</font><br><br>
<a href="edituser.asp?id=<%=StrUserid%>">Tilbage</a>
<%       
                 
        End if
%>
<%   

Else

    strId = Request.QueryString("id")
    strSQL = "SELECT username, password, fullname, company, redirect, group FROM Users WHERE UserId=" & strId
    Set rs = connection.Execute(strSQL)

        If Not (rs.EOF Or rs.BOF) Then

%>
<form method="post" action="edituser.asp?id=<%=StrUserid%>&cmd=update">
<table border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="120"><b>Brugernavn:</b></td>
    <td width="120"><b>Adgangskode:</b></td>
    <td width="120"><b>Navn:</b></td>
    <td width="120"><b>Firmanavn:</b></td>
    <td width="120"><b>Hold</b></td>
    <td width="120"><b>Redirect</b></td>
  </tr>
  <tr>
    <td width="120"><input type="text" name="username" value="<%=rs("username")%>" class="input" size="17"></td>
    <td width="120"><input type="text" name="password" value="<%=rs("password")%>" class="input" size="17"></td>
    <td width="120"><input type="text" name="fullname" value="<%=rs("fullname")%>" class="input" size="17"></td>
<% if strid = 1 THEN %>

</table>
<div align="center"><br><input type="submit" value="Rediger brugeren" class="input"><br><a href="overview.asp">Tilbage til oversigten</a></div>

<% Elseif strid > 1 Then %>
    <td width="120"><input type="text" name="company" value="<%=rs("company")%>" class="input" size="17"></td>
    <td width="120"><input type="text" name="group" value="<%=rs("group")%>" class="input" size="17"></td>
    <td width="120"><select name="Redirect" class="input">
            <% if rs("redirect") = "login/beskyttet.asp" Then %>
                            <option selected value="login/beskyttet.asp">Beskyttet 1</option>
                            <option value="login/beskyttet1.asp">Beskyttet 2</option>

            <% Elseif rs("redirect") = "login/beskyttet1.asp" Then %>
                            <option value="login/beskyttet.asp">Beskyttet 1</option>
                            <option selected value="login/beskyttet1.asp">Beskyttet 2</option>
            <% End if %>
                      </select></td>
  </tr>
</table>
<div align="center"><br><input type="submit" value="Rediger brugeren" class="input"><br><a href="overview.asp">Tilbage til oversigten</a></div>
<% end if %>
</form>
<% Else %>

Fejl, brugeren eksisterer ikke<br><br>
<a href="java script:this.history.go(-1);">Tilbage</a>
              <div align="left"><font size="2"></font></div>
<%
End if
End If
%>
Avatar billede ldanielsen Nybegynder
16. april 2004 - 10:27 #1
Du åbner den bruger der har pågældende username, og hvis han findes, siger du at han findes i forvejen!!

OK, det du vil vide er om der er en ANDEN er har det brugernavn så prøv:
Set rs2 = connection.execute("SELECT UserId FROM Users WHERE Username = '" & strUsername & "' AND Userid <> " & strUserid)
Avatar billede babyworm Nybegynder
16. april 2004 - 10:34 #2
Hehe..

Er lidt svært at forklare.
Meningen med koden er at hvis man nu har lyst til at ændre brugernavnet og man ændrer det til noget der allerede eksisterer, så skal skrive at brugernavnet allerede eksisterer.. men hvis man nu kun har lyst til at redigere i f.eks. adgangskoden og brugernavnet er det samme.. så skal den også kunne gøre det :)
Avatar billede ldanielsen Nybegynder
16. april 2004 - 10:41 #3
ja, det forstår jeg

Og jeg mener at jeg har ret; Du vil undersøge om brugernavnet findes. Hvis jeg nu ikke har ændret mit brugernavn, så findes det jo, ikkesandt? Men det må gerne findes, bare det er mit eget. derfor skal du se om der findes en ADNEN der har brugernavnet
Avatar billede babyworm Nybegynder
16. april 2004 - 10:42 #4
jepper.. og så virker den sætning du har skrevet?
Avatar billede babyworm Nybegynder
16. april 2004 - 10:44 #5
Kanont.. tak skal du have
Avatar billede ellebaek Nybegynder
16. april 2004 - 10:44 #6
ja, så skal du bare huske at skrive:

if rs2.eof then
'brugeren er ikke oprettet i forvejen, ret brugernavnet...
else
response.write "Der findes allerede en bruger med det navn, vælg et andet navn"
end if
Avatar billede babyworm Nybegynder
16. april 2004 - 10:54 #7
Hvor skal det stå henne?
Avatar billede ellebaek Nybegynder
16. april 2004 - 10:56 #8
Det er ikke nødvendigt...

Jeg fik ikke helt læst din kode igennem inden jeg skrev det indlæg ;-)
Jeg kan se at ida bare rettede en linie i din kode..
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