webForumDet fria alternativet

Register uppdateras ej

ASP

8 svar · 286 visningar · startad av anhel96

Medlem sedan dec. 2000124 inlägg
Frågan#1

Jag har ett medlemsregister i en Accessdatabas. När medlemmarna loggar in på medlemssidorna presenteras deras egna personuppgifter. De kan då välja att ändra sina uppgifter. Då skickas de till en sidan med ett formulär där de befintliga uppgifterna ligger ifyllda default. De kan sedan ändra vad de vill och sedan registrera detta med en knapp. De skickas då tillbaka till "sin egen sida" men de nya uppgifterna presenteras inte. De måste logga in på nytt för att kunna se de nya uppgifterna. Hur ska jag göra för att dessa nya uppgifter ska synas då de skickas tillbaka till sin sida??

Medlem sedan dec. 19995 874 inlägg
#2

Det beror lite på.
Troligtvis sparar du uppgifterna i en sessionsvariabel eller liknande. Då måste dessa uppdateras i samma ögonblick som han trycker på "uppdatera".
Skriv gärna lite mer om hur du plockar ut värdet när de skall visas på den personliga sidan.

------------------
Mvh
Patrik aka Brimba
Hur hittar pillret fram till det onda?

Medlem sedan dec. 2000124 inlägg
#3

Så här plockar jag ut värdena:

<!--#include file="functions.inc"-->
<%
Session("Logintries") = Session("Logintries") + 1
If Session("UserId")="" Then
Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("db.mdb")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbFilePath & ";"
SQLStmt = "SELECT * FROM Login Where Username = '" & FixaTecken(Request.Form("Username")) & "' AND Password = '" & FixaTecken(Request.Form("Password")) & "'"
Set RS = Connection.Execute(SQLStmt)

	If RS.EOF Then
	Response.Redirect("index.asp")


	Else

	Session("UserId") = RS("Id")
	Session("Username") = RS("Username")
	Session("Password") = RS("Password")
	Session("Efternamn") = RS("EfterNamn")
	Session("Fornamn") = RS("ForNamn")
	Session("Adress") = RS("Adress")
	Session("Postnummer") = RS("PostNummer")
	Session("Ort") = RS("Ort")
	Session("Logintries") = 0

	RS.Close
	Connection.Close

	End If

End If

%>

För att sedan presenteras så här:

\<table border="0" width="100%"\>

 
  \<tr\>
    \<td width="30%"\>\<strong\>\<font face="Verdana" size="1"\>Förnamn:\</font\>\</strong\>\</td\>
    \<td width="70%"\>\<font face="Verdana" size="1"\>\<%= Session("Fornamn")%\>\</font\> \</td\>
  \</tr\>

   \<tr\>
    \<td width="30%"\>\<strong\>\<font face="Verdana" size="1"\>Efternamn:\</font\>\</strong\>\</td\>
    \<td width="70%"\>\<font face="Verdana" size="1"\>\<%= Session("Efternamn")%\>\</font\> \</td\>
  \</tr\>

  \<tr\>
    \<td width="30%"\>\<strong\>\<font face="Verdana" size="1"\>Adress:\</font\>\</strong\>\</td\>
    \<td width="70%"\>\<font face="Verdana" size="1"\>\<%= Session("Adress")%\>\</font\> \</td\>
  \</tr\>

\<tr\>
    \<td width="30%"\>\<strong\>\<font face="Verdana" size="1"\>Postnummer:\</font\>\</strong\>\</td\>
    \<td width="70%"\>\<font face="Verdana" size="1"\>\<%= Session("Postnummer")%\>\</font\> \</td\>
  \</tr\>
  \<tr\>
    \<td width="30%"\>\<strong\>\<font face="Verdana" size="1"\>Ort:\</font\>\</strong\>\</td\>
    \<td width="70%"\>\<font face="Verdana" size="1"\>\<%= Session("Ort")%\>\</font\> \</td\>
  \</tr\>

</table>

Medlem sedan dec. 2000124 inlägg
#4

Det är när jag återvänder till sidan med ovanstående kod som det inte uppdateras när användaren varit inne på sidan för att ändra sina uppgifter. Det som kommer att skrivas ut av ovanstående är de gamla uppgifterna.

Medlem sedan dec. 2000124 inlägg
#5

Någon som kan svara på detta?

Medlem sedan jan. 20001 372 inlägg
#6

byt ut sidan som presenterar informationen så att den ser ut som följande så ska det nog fungera:

<!--#include file="functions.inc"-->
<%
Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("db.mdb")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbFilePath & ";"
SQLStmt = "SELECT * FROM Login Where id = " & Session("userid") & ""
Set RS = Connection.Execute(SQLStmt)
%>
<table border="0" width="100%">
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Förnamn:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Fornamn")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Efternamn:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Efternamn")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Adress:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Adress")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Postnummer:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Postnummer")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Ort:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Ort")%></font> </td>
</tr>
</table>

------------------
// David - Probably the best guy in the world

[Redigerat av DavidB den 18 dec 2000]

Medlem sedan dec. 2000124 inlägg
#7

Sidan som presenterar informationen är densamma som den sida de kommer till direkt efter inloggning. Dvs jag måste ju ha userid- och passwordkontrollen kvar. Går det inte att lösa på något annat sätt?

Medlem sedan jan. 20001 372 inlägg
#8

Om du gör såhär:
Följande är filen som kollar så att lösenordet och användarnamnet är ok:

<!--#include file="functions.inc"-->
<%
Session("Logintries") = Session("Logintries") + 1
If Session("UserId")="" Then
Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("db.mdb")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbFilePath & ";"
SQLStmt = "SELECT * FROM Login Where Username = '" & FixaTecken(Request.Form("Username")) & "' AND Password = '" & FixaTecken(Request.Form("Password")) & "'"
Set RS = Connection.Execute(SQLStmt)

If RS.EOF Then
Response.Redirect("index.asp")

Else

Session("UserId") = RS("Id")
Session("Logintries") = 0
Response.Redirect("inloggad.asp")

RS.Close
Connection.Close

End If

End If

%>

om det stämmer så skickas användaren vidare till inloggad.asp

inloggad.asp ser ut såhär:

<%
If Session("userid") = "" Then
Response.Redirect("index.asp")
End If

Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("db.mdb")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbFilePath & ";"
SQLStmt = "SELECT * FROM Login Where id = " & Session("userid") & ""
Set RS = Connection.Execute(SQLStmt)
%>
<table border="0" width="100%">
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Förnamn:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Fornamn")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Efternamn:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Efternamn")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Adress:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Adress")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Postnummer:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Postnummer")%></font> </td>
</tr>
<tr>
<td width="30%"><strong><font face="Verdana" size="1">Ort:</font></strong></td>
<td width="70%"><font face="Verdana" size="1"><%=RS("Ort")%></font> </td>
</tr>
</table>

nu e det så att om användaren vill gå direct till inloggad.asp utan att skriva i användarnamn och lösenord så skickas
han vidare till index.asp

------------------
// David - Probably the best guy in the world

Medlem sedan dec. 2000124 inlägg
#9

Detta fungerar utmärkt. Tack!
Men läs ändå mitt nya inlägg om
<% Session.Abandon %>
Har lite problem där.

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)