03. april 2005 - 09:20Der er
47 kommentarer og 1 løsning
Online - Offline
Hej.
Jeg vil gerne have lavet sådan at når brugerne logger på bliver den automatisk "Ja" og når de logger af bliver den "Nej" har forsøgt med:
<% If Request.QueryString("admin") = "tjek" then navn = trim(replace(Request.Form("brugernavn"), "'", "")) kode = trim(replace(Request.Form("kode"), "'", "")) Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db/System.mdb") sql = "SELECT * from admin WHERE brugernavn = '" & navn & "' AND kode = '" & kode & "'" Set rs = Conn.Execute(sql) if not rs.eof then
Set gw = Server.CreateObject("ADODB.RecordSet") MySQL = "Select * From admin WHERE ID = " & rs("ID") gw.Open MySQL, Conn, 1, 3 gw.Update gw("ip") = Request.ServerVariables("REMOTE_ADDR") gw.Update
Session("brugeradgang") = "1" Session("brugernavn") = rs("brugernavn") Session("id") = rs("id") Session("status") = rs("status") Session("IP") = Request.ServerVariables("REMOTE_ADDR") Session("Online") = "Ja" Response.Redirect "../Plus/Menu.asp" else response.redirect "../Plus/Fejl.asp" end if end if Set conn = Nothing Set rs = Nothing %>
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Session("brugeradgang") = "1" Session("brugernavn") = rs("brugernavn") Session("id") = rs("id") Session("status") = rs("status") Session("IP") = Request.ServerVariables("REMOTE_ADDR") Session("Online") = "Ja" Session.Timeout = 60 Response.Redirect "../Plus/Menu.asp" ------------------------------ Sætter den tid session gælder. Normalt gælder en session vist 20min eller til der lukkes for vinduet.
<% ' vi starter med at oprette forbindelse til vores database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db/System.mdb") Conn.Open DSN
' og så finder vi dataene, hvor værdien af feltet ID = værdien i vores Session("ID") SQL = "Select * FROM admin WHERE ID=" & Session("ID") Set rs = Conn.Execute(SQL)
' nu kan vi så lave vores udtræk Response.Write "Hej " & Rs("Navn") & "!" & "<br>"
' og for god ordens skyld lukker vi lige for databaseorbindelsen Conn.Close Set Conn = Nothing %> <hr>
<a href="../Brugersystem/Brugerliste.asp" target="indhold">Brugerliste</a><br> <a href="../Brugersystem/rediger_profil.asp" target="indhold">Rediger din profil<br></a> <% if session("status") = "Admin" then response.write " <a href='../Admin/Admin.asp' target='indhold'>Admin</a><br>" end if %> <a href="../Tagwall/Tagwall.asp" target="indhold">Tagwall</a><br> <a href="Logud.asp">Log af</a><br><br>
virker det slet ikke? for måske du skal lave ID med småt så..som du definerer det i din session altså: SQL = "Select * FROM admin WHERE ID=" & Session("id")
Nej piller ikke ved nogle session´s som betyder noget. Men kan det ikke ske den ikke skriver den fordi jeg ikke angiver hvor den skal skrive "Ja" og "Nej" til?
nå du skriver : Session("Online") = "Ja" ... så inderholder sessionen jo værdien "JA" Måske er jeg så ikke helt med på problemet Hvor hiver du værdien ud af Session("online") igen??
Session("brugernavn") = rs("brugernavn") Siger at du i din session opretter et "brugernavn" med værdien som står i rs("brugernavn") Session("online") = "ja" Siger tilsvarende at du i din session opretter et "online" felt med værdien "ja" Så det burde virke fint fint
Hvis det er samme linje kan du jo også gøre følgende: width="446"><%If Session("Online") = "ja" then response.write "Ja" else response.write "Nej" end if%></td>
men er det meningen at man som bruger skal kunne se om man selv er online.?.. eller er det meningen at andre skal kunne se det? For hvis andre skal kunne se det så ville det nok være en ide at lave et felt i databasen som hed "online" og så bruge det felt frem for sessionen
Det er så andre kan se det og en selv. Altså alle på sitet skulle kunne se det. Og jeg har et felt i databasen som hedder Online. Har du så nogle gode råd? :)
Ja så skal du jo ikke rette rs("online") til session("online") Så skal du jo der hvor du sætter Session("online") = "Ja" lave en databaseforbindelse som updater brugerens online felt i databasen til "Ja" og tilsvarende når vedkommende logger ud
<b><br> <% If Request.QueryString("admin") = "tjek" then navn = trim(replace(Request.Form("brugernavn"), "'", "")) kode = trim(replace(Request.Form("kode"), "'", "")) Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db/System.mdb") sql = "SELECT * from admin WHERE brugernavn = '" & navn & "' AND kode = '" & kode & "'" Set rs = Conn.Execute(sql) if not rs.eof then
Set gw = Server.CreateObject("ADODB.RecordSet") MySQL = "Select * From admin WHERE ID = " & rs("ID") gw.Open MySQL, Conn, 1, 3 gw.Update gw("ip") = Request.ServerVariables("REMOTE_ADDR") gw.Update
Session("brugeradgang") = "1" Session("brugernavn") = rs("brugernavn") Session("id") = rs("id") Session("status") = rs("status") Session("IP") = Request.ServerVariables("REMOTE_ADDR") Session("Online") = "Ja" Session.Timeout = 60 Response.Redirect "../Plus/Menu.asp" else response.redirect "../Plus/Fejl.asp" end if end if Set conn = Nothing Set rs = Nothing %> </b>
betyder at den ikke kan lave det dersen htmlencode...men hvis du ved at der kun kan stå "Ja" eller "Nej" ... så kan du vel fjerne den Server.HtmlEncode?
Men jeg tror måske du skal bytte om på det Session("brugeradgang") = "1" Session("brugernavn") = rs("brugernavn") Session("id") = rs("id") Session("status") = rs("status") Session("IP") = Request.ServerVariables("REMOTE_ADDR") Session("Online") = "Ja" Session.Timeout = 60 strSQL = "UPDATE admin SET online=Ja WHERE id="&rs("id") Conn.Execute(strSQL) -----------------
Jamen den skal jo bare vise indholdet i den tabel? Det fatter jeg bare ikke hvorfor den ikke gør :s Det kan vel kun være fordi den ikke skriver ordentligt til databasen i Login.asp?
hvis den ikke skriver ordentlig til databasen så ville den give dig en fejl...det gør den ikke... Den fortæller dig at typerne ikke stemmer overens Så prøv at fjerne Server.HtmlEncode og nøjes med <td height="24" width="94"><b>Online?:</b></td><td height="24" width="446"><%=rs("Online")%></td>
kender i øvrigt ikke til denne metode: -------------------- Set gw = Server.CreateObject("ADODB.RecordSet") MySQL = "Select * From admin WHERE ID = " & rs("ID") gw.Open MySQL, Conn, 1, 3 gw.Update gw("ip") = Request.ServerVariables("REMOTE_ADDR") gw.Update -------------------- men måske det er muligt du ligesågodt kan lave det i den: -------------------- Set gw = Server.CreateObject("ADODB.RecordSet") MySQL = "Select * From admin WHERE ID = " & rs("ID") gw.Open MySQL, Conn, 1, 3 gw.Update gw("ip") = Request.ServerVariables("REMOTE_ADDR") gw.Update gw("online") = "Ja" gw.Update
Det er nok fordi du jo også skal opdatere databasen når der logges ud <% ' slet værdierne i alle sessions Session.Abandon Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../db/System.mdb") strSQL = "UPDATE admin SET online=Nej WHERE id="&session("id") Conn.Execute(strSQL) ' og videresend brugeren Response.Redirect "Login.asp" %>
undskyld det sene svar ... får du stadig fejl? Ellers prøv med: strSQL = "UPDATE admin SET online='Nej' WHERE id="&session("id") response.write strSQL Conn.Execute(strSQL) ---- Så kan vi lige lure sql´en hvis det er
Synes godt om
Ny brugerNybegynder
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.