Avatar billede guldklumpen Nybegynder
16. november 2002 - 10:30 Der er 7 kommentarer og
1 løsning

Opdatering af brugeroplysninger

Jeg har en database som indeholder bl.a. brugernavn, password, navn, adresseoplysniner m.m.

Brugerne skal have mulighed for selv at redigere i deres egne oplysninger.

Hvordan gør man det.
Avatar billede justdoit Nybegynder
16. november 2002 - 10:37 #1
Så skal du jo have hentes informationerne tilbage ind i formfelterne!!

Det kan evt gøres sådan

<input type="text" navn="brugernavn" value="<%rs("brugernavn")%>">
<input type="text" navn="password" value="<%rs("password")%>">
<input type="text" navn="navn" value="<%rs("navn")%>">

Så skal du hente id værdien som brugeren har:

Fx

strId = Request.Qureystring("id")

"Select * from TABEL where id =" & strId
Avatar billede eagleeye Praktikant
16. november 2002 - 10:39 #2
Hver bruger har så også et unik ID (autonummer) så man kan kende forskel på dem.

Du skal hendte data fra den bruger som ønsker at rette data:

SQL = "SELECT * FROM brugerdata WHERE ID = " & Session("userID")
Set rs = conn.execute(SQL)

Så kan du lave en form som man kan rette i:

<form action="" method="post">
Brugernavn <input type="text" name="brugernavn" value="<%=rs("brugernavn")%>"><br>
Password <input type="text" name="password" value="<%=rs("password")%>"><br>

osv..
<input type=submit name=send value=send>
</form>


Så skal du havde en side som opdater databasen kommer i næste kommentar.
Avatar billede eagleeye Praktikant
16. november 2002 - 10:44 #3
Hvis du vil tillade at rette brugernavn skal du inden du gemmer tjekke brugernavet ikke er brugt af en anden bruger så to ikke har samme brugernavn. Dog må man så gerne beholde sit gamle brugernavn:


brugernavn = Requst.Form("brugernavn")
password = Request.Form("password")
userID = Session("userID")


'Tjekke om brugernavet er taget af en adnen bruger
SQL = "SELECT * FROM brugerdata WHERE brugernavn='" & brugernavn & "' AND ID <> " & UserID & ";"
set rs = Conn.Execute(SQL)
if (rs.BOF AND rs.EOF) then
  'Ikke nyt bruger navn eller nyt bruger navn er frit
  strSQL = "UPDATE brugerdata SET "
  strSQL = strSQL & " brugernavn='" & brugernavn& "'"
  strSQL = strSQL & ", password='" & password& "'"
....OSV...

  strSQL = strSQL & " WHERE memberID = " & memberID & ";"
  Conn.Execute(strSQL)
Else
  Response.write "Bruger navnet et taget.."
end  if
Avatar billede guldklumpen Nybegynder
16. november 2002 - 10:49 #4
afprøver det lige - vender tilbage senere
Avatar billede eagleeye Praktikant
16. november 2002 - 10:52 #5
Ok.. du kan tage et kig på http://www.html.dk/tutorials/asp/ og kigge lidt på lektion 15 -> 22 som omhandler ASP og databaser.
Du kan kigge her for syntax for SQL: http://www.w3schools.com/sql/default.asp
Avatar billede guldklumpen Nybegynder
18. november 2002 - 00:41 #6
Eagleeye> Det virker sq ikke rigtig.

Jeg har i første omgang bare lavet nedenstående for at se om det ville virke, men databasen bliver ikke opdateret - tværtimod.

Det der stod i databasen inden opdateringen bliver slettet og posten er derefter tom.

Har sq snart prvet alt muligt - Hvad er der galt ??

Min formside ser sådan ud:

    Set Conn = Server.CreateObject("ADODB.Connection")

    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/xxxxxxxxx/xxxxxxxxxxxx.mdb")
    Conn.Open DSN

    strSQL = "select * from Users where id=" & Session("firmaid") & ""

    set RS = conn.execute( strSQL )

    response.write rs("navn")
%>

    <form action="opdater.asp" method="post">
    <input type="text" name="brugernavn" value="<%=rs("navn")%>"><br>
    <input type="text" name="brugernavn" value="<%=rs("adresse")%>"><br>
    <input type=submit name=send value=send>
    </form>




Siden der opdaterer databasen ser ud som følger:

    brugernavn = request.form("brugernavn")
    adresse = request.form("adresse")
    firmaid = Session("firmaid")

    Set Conn = Server.CreateObject("ADODB.Connection")

    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/xxxxxxx/xxxxxxxxxxx.mdb")
    Conn.Open DSN

    SQL = "SELECT * FROM Users WHERE id=" & firmaid & ";"
   

    strSQL = "UPDATE Users SET "
      strSQL = strSQL & " navn='" & brugernavn & "'"
    strSQL = strSQL & ", adresse='" & adresse & "'"
   

    strSQL = strSQL & " WHERE id = " & firmaid & ""

    Conn.Execute(strSQL)
Avatar billede guldklumpen Nybegynder
18. november 2002 - 13:49 #7
Nu har jeg fået det til at virke.

Skal lige afprøve det med brugernavn og password.

Der var en fejl et andet sted der bevirkede at den ikke opdaterede.

Når jeg har checket brugernavn og password skal jeg nok acceptere.
Avatar billede guldklumpen Nybegynder
21. november 2002 - 15:24 #8
Tak for hjælpen.

Det virker sq bare !
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