webForumDet fria alternativet

"Update" med behörighetskontroll??

5 svar · 151 visningar · startad av anhel96

anhel96Medlem sedan dec. 2000124 inlägg
#1

Jag har skapat ett litet medlemsregister i form av en access-databas där det är tänkt att alla ska kunna gå in och ändra sina egna personuppgifter. De får varsitt login och password. När de loggar in kommer en sida upp där deras uppgifter listas. de kan sedan välja att ändra sin uppgifter. De kommer då till en sida med ett formulär. Så långt fungerar det.
Hur ska jag sedan göra för att de endast ska kunna ändra på sina egna uppgifter, och hur ska jag göra för att formuläret ska fyllas i med default-värdena från början, där de sedan kan välja att ändra ett eller fler.

jispirMedlem sedan maj 20011 343 inlägg
#2

FÖr att hämta default värden så kör du enklast en databas koppling och hämtar fram där värdena tillhör ett speciellt id typ så här

<% 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas"))
sql="SELECT beskrivning, epost, info FROM login WHERE id="&session("userid")&""
rs=conn.execute(sql)

conn.close
%>

Och för att uppdatera

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database"))

id=session("userid")
login=request("login")
info=request("info")
epost=request("epost")
beskrivning=request("beskrivning")
password=request("password")

sql="UPDATE login SET login='"&login&"', info='"&info&"', epost='"&epost&"', beskrivning='"&beskrivning&"', password='"&password&"' WHERE id="&id&""
conn.execute(sql)

response.write("Du har nu ändrat " &login &"s information")
%>

Lycka till!
------------------
Utdrag nr 4 ur jispirs regelbok-->Använd alltid gratis tjänster från verktygslådan. :e
Ett gott trams förlänger livet :e

[Redigerat av jispir den 11 dec 2000]

PatrikBMedlem sedan mars 20002 836 inlägg
#3

Hello,

skulle vilja att det fanns ngn typ av check av användarnamn o pwd innan man gör ngn form av uppdatering, för säkerhets skull ;)

Kanske ngt liknande:

<%
Option Explicit

REsponse.Buffer = True

Dim strUserName, strPwd, strNewPwd, strNewName

strUserName = Request.Form("username")
strPwd = Request.Form("pwd")

strNewPwd = Request.Form("newpwd")
strNewName = Request.Form("fname")

Set objConn = Server.CreateObject("ADODB.Connection")
With objConn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=" & Server.MapPath("/min_db.mdb")
	.Open
End With

' FLD_USER_NAME ska vara indexerat och inte tillåta dubletter
'------------------------------------------------------------
strSQL "SELECT * FROM TBL_MEMBERS WHERE FLD_USER_NAME = '" & strUserName &"'"

Set objRS = Server.CreateObject("ADODB.Recordset")
	objRS.Open strSQL, objConn, 3, 3

	If objRS.EOF Then
		' användarnamnet hittades inte
		'-----------------------------
		Response.Write("Fel användarnamn eller lösenord")
	Else
		' användarnamnet hittades
		' jmf om rätt pwd har angivits
		'-----------------------------
		If strPwd = objRS("FLD_PWD") Then

			' rätt pwd
			' uppdatera medlemsinfon
			'-----------------------
			objRS("FLD_MEMBER_NAME") = strNewName
			objRS("FLD_PWD") = strNewPwd

			objRS.UpdateBatch
		Else
			' fel pwd
			'--------
			Response.Write("Fel användarnamn eller lösenord.")
		End If
	End If

	objRS.Close
set objRS = nothing

	objConn.close
Set objConn = nothing
%>

där man först kollar att användarnamnet finns i db och sedan jmf om det är rätt angivet lösen innan ngn uppdatering görs.

cya,

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

jispirMedlem sedan maj 20011 343 inlägg
#4

Det är en säkrare variant PatrikB men jag gav han bara en liten inblick i hur man kan göra ;)

------------------
Utdrag nr 4 ur jispirs regelbok-->Använd alltid gratis tjänster från verktygslådan. :e
Ett gott trams förlänger livet :e

anhel96Medlem sedan dec. 2000124 inlägg
#5

Kan man på något sätt skicka med variabler från den "personliga sidan" när denne anger att han/hon vill uppdatera sina uppgifter. T.ex. skicka med login och lösen när denna länk utförs:
<a href="nyreg.asp">Ändra dina uppgifter</a>

PatrikBMedlem sedan mars 20002 836 inlägg
#6

Hello,

antingen genom sessions eller cookies.
Beror på hur "länge" som medlem vill att uppgifterna ska kommas ihåg.

Man kan med cookie ställa in att spara lösen och anv.namn så nästa ggn medlem kommer till sidan blir han/hon inloggad automatiskt, eller kommer till sidan där uppdateringar kan göras av sin egen medlemsinfo.

cya

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)