Jeg har en database, hvor brugerne skal kunne opdatere oplysninger! Men hvordan kan jeg sikre mig, at det kun er den bruger, der er logget ind, hvis data opdateres.
<% Response.Expires = -1000 'Makes the browser not cache this page Response.Buffer = True 'Buffers the content so our Response.Redirect will work
If Session("UserLoggedIn") <> "true" Then Response.Redirect("login2.asp") End If %>
<% if request.session("UserLoggedIn") <> "" then STRDBNAVN="database\databaselog.mdb" DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBdatabaselog & "") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open DSN
Du benytter et felt Session("UserLoggedIn") som angiver at en bruger er logget ind eller ej. Dette skal bare udvides med noget som identificerer brugeren. Det nemmeste er hvis du gemmer et unkikt id, når du kontrollere brugerens password og brugernavn. Du kan evt bruge access's autonumber funktion, hvis du ikke allerede bruger den.
Efterfølgende skal du så bare køre SQL kommando .... WHERE id ="& session("loginid") istedet for request("id")
du må kalde den hvad du vil. Bare du husker at sætte session("etellerandetId") til id'et på den bruger som er logget ind. Og det nemmeste er som sagt når du validerer brugeroplysninger.
Har selv lavet noget lignende engang - håber det kan tjene som inspiration. Man kan også lave en kontrol på, hvilke felter der er ændret i, ved at gemme deres tidlige værdi i en variabel og så sammenligne de to når man trykker send, jeg kan dog bedst lide nedenstående. <% if Request.Form("action")="upd" then
Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open dbstring Connection.execute("UPDATE paint SET beskrivelse='"&Request.Form("beskrivelse")&"', sti='"&Request.Form("sti")&"', stithumb='"&Request.Form("stithumb")&"', navn='"&Request.Form("navn")&"', kort='"&Request.Form("kort")&"' WHERE id="&session("id")) connection.close set connection = nothing %>
Data er gemt! <BR><BR> <A Href="main.asp">Klik her for at vende til forsiden</A> <% else Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open dbstring Set SQL = Connection.execute("SELECT * FROM paint where id="&session("id")) dim sti,stithumb,kort,beskrivelse,navn sti = SQL("sti") stithumb = SQL("stithumb") kort = SQL("kort") beskrivelse = SQL("beskrivelse") navn = SQL("navn")
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.