Avatar billede Slettet bruger
20. august 2003 - 21:12 Der er 21 kommentarer og
1 løsning

Vise data fra brugeren der logges ind som

Jeg har følgende kode, som er den side man kommer ind på når man har logget ind, jeg vil dog gerne have den til kun at hente indhold fra db, men kun til den bruger der nu er logget ind.

<html>
<head>
<title>CAP - Create A Party</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="styles.css">
</head>

<body bgcolor="#000000" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">

<%
' Databaseforbindelse - husk at angive sti til din database

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\cap\db\cap.mdb;"

SET rs = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\Inetpub\wwwroot\cap\db\cap.mdb;"


' SQL forespørgsel
strSQL = "SELECT * FROM tblUser INNER JOIN Cap On tblUser.MemberID = Cap.MemberID WHERE Username = Username"

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

response.write "You are logged on as " & ("Username") & "<br><br>"

' Gennemløb Recordset (rs) med en løkke
Do

  ' Udskriv værdien af kolonnen Titel
  Response.Write rs("Titel") & "<br>"

  ' Gå til næste Record i rs
  rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

</body>
</html>

Jeg gætter på det er noget med min SQL forespørgsel der ikke er rigtig, den viser ihvertfald alle fra kollonen Titel og ikke kun dem brugeren har oprettet.

Håber nogen kan hjælpe.
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:19 #1
prøv:

' SQL forespørgsel
strSQL = "SELECT * FROM tblUser INNER JOIN Cap On tblUser.MemberID = Cap.MemberID WHERE Username = '"&Username&"'"
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:20 #2
og så skal du huske at variablen Username skal indeholde brugernavnet
Avatar billede Slettet bruger
20. august 2003 - 21:23 #3
Det troede jeg også, men så får jeg en fejl

Error Type:
(0x80020009)
Exception occurred.
/cap/member.asp, line 32

linie 32 er den nederste af efterfølgende:

  ' Udskriv værdien af kolonnen Titel
  Response.Write rs("Titel") & "<br>"
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:29 #4
"SELECT * FROM tblUser, Cap WHERE tblUser.MemberID = Cap.MemberID AND tblUser.Username = '" & Username & "'"
Avatar billede Slettet bruger
20. august 2003 - 21:31 #5
Den laver stadig fejl i linie 32
Avatar billede Slettet bruger
20. august 2003 - 21:36 #6
Jeg ved ikke om det har en sammenhæng med login siden, men den ser sådan ud, bare for at gøre det hele lidt mere forvirrende

<% response.buffer = true %>
<html>
<head>
<title>Logon Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" >

<table width="100%" border="0" cellspacing="0" cellpadding="0" height="19" align="center">
  <tr>
    <td height="54" align="left">
<%
' BEGIN LOGON PROCEDURE
dologin = request.form("login")
Username = request.form("username")
Password = request.form("password")
if request.cookies("logoncookie")("cookname")<>"" then
    Username = request.cookies("logoncookie")("cookname")
    Password = request.cookies("logoncookie")("cookpass")
    dologin = "login"
end if
if request.form("logoff")="logoff" then
    dologin = "no"
    session("logon")="no"
    session("Username") = ""
    session("admin") = "no"
    session("superadmin") = "no"
    response.cookies("logoncookie").expires = date  -1
end if
    'decide whether to login or not
    if dologin ="login" then
        set dataconn = server.createobject ("ADODB.connection")
        set rs1 = server.createobject ("ADODB.recordset")
        dataconn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\Inetpub\wwwroot\cap\db\cap.mdb"
        MYSQL = "SELECT * FROM tblUser WHERE Username = '" & Username & "'"
        rs1.open MYSQL, dataconn, 1, 3
        if not rs1.EOF or not rs1.BOF then 'username checker
            if Password = (rs1("password")) then  'check password
                session("logon") = "yes"
                session("Username") = Username
               
                if rs1("level") = "admin" then session("admin") = "yes"
                if rs1("level") = "superadmin" then
                    session("admin") = "yes"
                    session("superadmin") = "yes"
                end if
                if request.form("rem") = "yes" then 'checkbox and create cookie
                    response.cookies("logoncookie").Expires = date + 31
                    response.cookies("logoncookie")("cookname")= Username
                    response.cookies("logoncookie")("cookpass")= Password
                end if
            else
                session("logon") = "no" 'incorect password error
                errmess="password incorrect"
            end if
        else
            errmess="Incorect Username" 'incorrect username error
        end if
        rs1.close()
        dataconn.close()
       
    end if
'show user logged in
if session("logon") = "yes" then
call logonyes
else
'show login required
call logonno
response.write errmess
end if
' END LOGIN PROCEDURE
%>
    </td>
  </tr>
</table>
<% function logonno() %>
<form name="login" method="post" action="member.asp">
  Username
  <input type="text" name="username" size="17">
              <br>
              Password
              <input type="password" name="password" size="17">
              <br>
              Remember me
              <input type="checkbox" name="rem" value="yes">
              <input type="submit" name="login" value="login">
</form>
<p>Please click <a href="reg.asp">here</a> to register</p>
<% end function

function logonyes()
response.write "You are logged on as " & session("Username")
if session("admin") = "yes" then response.write "<br>Admin Level Logon"
if session("superadmin") = "yes" then response.write"<br><a href='update.asp'>Update Users</a>"
%>
<form name = "login" method="post" action="default.asp">
  <input type="submit" name="logoff" value="logoff">
</form>
<% end function %>
</body>
</html>
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:38 #7
"SELECT * FROM tblUser, Cap WHERE tblUser.MemberID = Cap.MemberID AND tblUser.Username = '" & session("Username") & "'"
Avatar billede Slettet bruger
20. august 2003 - 21:44 #8
Nope den vil stadig ik, det skal siges at jeg er rimelig ny i ASP, så der kan være andre fejl, men det er mærkeligt for det er den der rs("Titel") der å gøre problemet, for hvis den fjernes virker det, men så kan jeg ikke tjekke om den kun viser data fra den bruger.
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:46 #9
hvad skriver denne linie:

response.write "You are logged on as " & ("Username") & "<br><br>"
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:48 #10
If rs.EOF then
    Response.Write "Ingen resultater<br>"
Else
  ' Gennemløb Recordset (rs) med en løkke
  While Not rs.EOF
    ' Udskriv værdien af kolonnen Titel
    Response.Write rs("Titel") & "<br>"

    ' Gå til næste Record i rs
    rs.MoveNext

  ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
  Wend
End If
Avatar billede Slettet bruger
20. august 2003 - 21:49 #11
Det eneste den skriver er:
You are logged on as Username

Istedet for Username skulle der gerne stå brugernavnet jo, men det gør den heller ikke.
Avatar billede mm12010 Nybegynder
20. august 2003 - 21:52 #12
hvad skriver denne linie så:

response.write "You are logged on as " & session("Username") & "<br><br>"
Avatar billede Slettet bruger
20. august 2003 - 21:55 #13
Den skriver kun:

You are logged on as

ikke noget med username eller noget, ingen ting efter.
Avatar billede Slettet bruger
20. august 2003 - 21:56 #14
med denne:

If rs.EOF then
    Response.Write "Ingen resultater<br>"
Else
  ' Gennemløb Recordset (rs) med en løkke
  While Not rs.EOF
    ' Udskriv værdien af kolonnen Titel
    Response.Write rs("Titel") & "<br>"

    ' Gå til næste Record i rs
    rs.MoveNext

  ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
  Wend
End If

Skriver den ingen resultater
Avatar billede mm12010 Nybegynder
20. august 2003 - 22:00 #15
så er det fordi du ikke er logget ind(session("Username") er tom)
Avatar billede Slettet bruger
20. august 2003 - 22:02 #16
Oppe på login siden, er der ellers denne her session("Username") = Username, gør den ikke det eller er det bare mig
Avatar billede mm12010 Nybegynder
20. august 2003 - 22:04 #17
jo det burde den

jeg er ikke så stiv i VB men jeg kan lige kigger din login-kode igennem
Avatar billede Slettet bruger
20. august 2003 - 22:06 #18
Hvis du har etr liggende der bruger Javascript istede, men ellers gør det samme, altså logger ind og viser hvad den bruger har oprettet er den fin med mig.
Avatar billede mm12010 Nybegynder
20. august 2003 - 22:08 #19
prøv lige med denne på din login-side:

<form name="login" method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">

i stedet for

<form name="login" method="post" action="member.asp">
Avatar billede Slettet bruger
20. august 2003 - 22:12 #20
Det gør at den bliver på den første side, men ændre indholdet det er cool nok, hva så med at den skal vise bestem indhold, vil det virke hvis jeg flytter koden fra member.asp til login siden?
Avatar billede Slettet bruger
20. august 2003 - 22:14 #21
Det virker ihvertfald hvis jeg gør sådan, tak for hjælpen indtil nu, der kommer nok mere
Avatar billede mm12010 Nybegynder
20. august 2003 - 22:19 #22
ellers kan du bare sætte det her ind nederst i login-filen:

<%
if session("logon") = "yes" then
  Response.Redirect("member.asp")
end if
%>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester