A anhel96 Medlem sedan dec. 2000 124 inlägg Frågan 14 dec. 2000 22:41 #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??
Brimba Medlem sedan dec. 1999 5 874 inlägg 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?
A anhel96 Medlem sedan dec. 2000 124 inlägg 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>
A anhel96 Medlem sedan dec. 2000 124 inlägg 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.
A anhel96 Medlem sedan dec. 2000 124 inlägg Någon som kan svara på detta?
D DavidB Medlem sedan jan. 2000 1 372 inlägg 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]
A anhel96 Medlem sedan dec. 2000 124 inlägg 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?
D DavidB Medlem sedan jan. 2000 1 372 inlägg 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
A anhel96 Medlem sedan dec. 2000 124 inlägg Detta fungerar utmärkt. Tack!
Men läs ändå mitt nya inlägg om
<% Session.Abandon %>
Har lite problem där.