Avatar billede autohh Nybegynder
18. september 2004 - 14:26 Der er 27 kommentarer og
1 løsning

Se profil

Heysa allesammen på eksperten.dk :)

er igang med at lave et community hvor jeg godt ville have at brugerne skulle have deres ejen profil altser profil?=brugernavn er det muligt at få dig til at lave ?

Har selv prøvet men mislykkes :)

min database:
Bruger
Navn
Kode
Info
Avatar billede eagleeye Praktikant
18. september 2004 - 14:35 #1
Du kan gøre sådan her, her med deres ID gemt i en session variable:

<%
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db.mdb")

SQL = "select * from bruger where id = " & Session("brugerID")
Set rs=Conn.Execute(SQL)

do while not rs.EOF
  Response.Write "<table><tr>"
  Response.Write "<td>Navn : </td><td>" & rs("navn") & "</td>"
  Response.Write "<td>Info : </td><td>" & replace(rs("navn"),vbCrLf,"<br>") & "</td>"
  Response.Write "</tr></table>"
  rs.Movenext
loop
%>



Gemmer du navnet i session så kan du lave SQL sætningen om til:
SQL = "select * from bruger where id = '" & Session("navn") & "'"
Avatar billede autohh Nybegynder
19. september 2004 - 16:23 #2
Hva er urlen så til brugeren ? www.side.dk/profil=1 ?
Avatar billede eagleeye Praktikant
19. september 2004 - 18:06 #3
Hvis det er ens egen profil man skal kunne se og andre ikke må se profilen skal det ikke overførs via linket da man så kan se alle andre profiler.
Hvis man skal kunne se alle andres er det fint via linket og man kan ændre SQL sætningen:
SQL = "select * from bruger where id = " & Session("brugerID")

Til dette:
SQL = "select * from bruger where id = " & Request.Querystring("profil")
Avatar billede autohh Nybegynder
19. september 2004 - 20:12 #4
Kan ikke få det til at virke :S
Skriver denne url:
http://frip.dk/ghostweb/system/profil.asp?=brugernavn

og får denne fejl:
Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'id ='.

/ghostweb/system/profil.asp, line 6


er os lige noget andet hvis brugeren ikke findes skal den sige det
Avatar billede eagleeye Praktikant
19. september 2004 - 20:13 #5
Hviken kode bruger du?
Avatar billede eagleeye Praktikant
19. september 2004 - 20:14 #6
Men du overføre jo også kun "=brugernavn" ?? ikke noget id eller anden variable??
Avatar billede autohh Nybegynder
19. september 2004 - 20:18 #7
;) ska være til et community altser så andre kan se profilerne altser profil?=pokz eller noget?
Avatar billede eagleeye Praktikant
19. september 2004 - 20:21 #8
Jamen så det jo ikke ID'et men nanvet. Prøv at lave linket som:

profil.asp?navn=pokz

Så ret SQL sætningen:
SQL = "select * from bruger where id = " & Request.Querystring("profil")

Til dette:
SQL = "select * from bruger where navn = '" & Request.Querystring("navn") & "'"
Avatar billede autohh Nybegynder
19. september 2004 - 20:27 #9
Så virker det så er det bare hvis brugeren ikke findes så skal der lige være en fejl melding
Avatar billede eagleeye Praktikant
19. september 2004 - 20:29 #10
Ok :), så prøv efter denne linje:

Set rs=Conn.Execute(SQL)


at tilføje en if sætninge som udskriver fejlen

Set rs=Conn.Execute(SQL)
if rs.EOF then
  Response.Write "<center>Brugeren findes ikke</center>"
end if
Avatar billede autohh Nybegynder
19. september 2004 - 20:34 #11
er fandme krævende idag :)
Ska lige have den sidste :D
Sådan at brugeren kan trykke via et link til sin profil :)
<p><a href="profil.asp?navn=Rs et eller andet  ik?">Klik her for at gå til din profil</a></p>
Avatar billede eagleeye Praktikant
19. september 2004 - 20:37 #12
Hvis det skal være på profil.asp siden linket skal være kræver det et sted hvor du har gemt personen brugernavn eksempelvis i session?
Avatar billede autohh Nybegynder
19. september 2004 - 20:40 #13
Linket skal være på en side der hedder startside.asp :) ved ikke helt om man kan lave en session eller hva du nu kan finde ud af :)
Avatar billede eagleeye Praktikant
19. september 2004 - 20:42 #14
Ok, hvis så prøv sådan her hvis du har et recordset som hedder rs på startside.asp:

<p><a href="profil.asp?navn=<%=Rs("navn")%>">Klik her for at gå til din profil</a></p>
Avatar billede autohh Nybegynder
19. september 2004 - 20:44 #15
Fejl:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'Rs'

/ghostweb/system/startside.asp, line 8

kode =

<%
if session("tillad")<> "ja" then
Response.redirect "login.htm"
end if
Session.Abandon
%>
<body background="../grafik/begg.JPG">
<p><a href="profil.asp?navn=<%=Rs("navn")%>">Klik her for at gå til din profil</a></p>
<p><a href="forum.asp">Klik her for at gå til forummet(virker ikke)</a></p>
<b> hehe </b>
<hr style="border: 1 dotted black" width="200" size="1" color="black">
Avatar billede eagleeye Praktikant
19. september 2004 - 20:46 #16
Så har du ikke et reordset.
Hvordan ved du hvilken bruger der er logget ind?
Avatar billede autohh Nybegynder
19. september 2004 - 20:50 #17
ved jeg ikke :S
Avatar billede eagleeye Praktikant
19. september 2004 - 20:51 #18
Så kan du jo ikke lave et link til den som er logget ind :)
Avatar billede autohh Nybegynder
19. september 2004 - 20:53 #19
Okay ;) r ved at falde af.. kan du evt lave noget kode der kan redde den ?
Avatar billede autohh Nybegynder
19. september 2004 - 20:53 #20
lige sat den op til 200 points
Avatar billede eagleeye Praktikant
19. september 2004 - 20:58 #21
Det man normalt gør er at gemme enten bruger navnet eller ID'et på brugeren i session objecetet når man logger ind. Så kan man på alle siderne bruge det navn eller ID.

Så på din logsin siden når brugeren er godkendt tilføje sådan her, rs skal være det recordset du bruger til at tjekke brugernavn og password i databasen:

  session("navn") = rs("navn")


Så kan du lave linket som:
<p><a href="profil.asp?navn=<%=session("navn")%>">Klik her for at gå til din profil</a></p>
Avatar billede autohh Nybegynder
19. september 2004 - 21:05 #22
virker ikke kommer ind på en tom side og urlen er http://frip.dk/ghostweb/system/profil.asp?navn=
Avatar billede eagleeye Praktikant
19. september 2004 - 21:07 #23
Prøv lige at rette disse:

<%
if session("tillad")<> "ja" then
Response.redirect "login.htm"
end if
Session.Abandon
%>

Til dette eller slettes din session variable før tid:

<%
if session("tillad")<> "ja" then
Response.redirect "login.htm"
Session.Abandon
end if
%>
Avatar billede autohh Nybegynder
19. september 2004 - 21:10 #24
Virker stadig ikke :S samme fejl
Avatar billede eagleeye Praktikant
19. september 2004 - 21:12 #25
hvordan logger du så folk ind?
Avatar billede autohh Nybegynder
19. september 2004 - 21:20 #26
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

SQL = "select * from brugere where bruger='" & Request.querystring("logon") & "'"
Set rs = Conn.Execute(SQL)
response.write sql

Do While Not rs.EOF
check1=(rs("bruger"))
check2=(rs("kode"))

if check1=request.querystring("logon") and check2=request.querystring("pass") THEN
session("tillad")="ja"
response.redirect "startside.asp"
end if
rs.MoveNext

Loop
response.redirect "login.htm"
%>
Avatar billede eagleeye Praktikant
19. september 2004 - 21:23 #27
Prø at rette dette:

if check1=request.querystring("logon") and check2=request.querystring("pass") THEN
session("tillad")="ja"
response.redirect "startside.asp"
end if


Til dette:

if check1=request.querystring("logon") and check2=request.querystring("pass") THEN
session("navn")=rs("navn")
session("tillad")="ja"
response.redirect "startside.asp"
end if



men er navn eller bruger som skal vises?
Avatar billede autohh Nybegynder
19. september 2004 - 21:25 #28
ved ikke helt hva du gjorde men det virket fuldt ud tark :)

Ps. Har du ikke selv en hjemmeside ? giv lig link
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