Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 20:44 Der er 58 kommentarer og
2 løsninger

DB udtræk til ASP

Hej brugere af eksperten.dk

Har et mindre problem som jeg ikke lige kan se mig ud af, jeg har fået lavet dette lille community, men nu kan jeg ikke få trukket sådan nogle ting ud som brugernavn osv.

Mine koder ser sådan her ud:

Jeg henter mine dataer på denne her måde, ved hver side... Det her bruger jeg også til at validerer om folk er logget ind og hvilke level de har:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if session("login") > "" then
    strLevel = "SELECT * FROM brugere WHERE id = "& session("login") &""
    set brugerinfo = Conn.Execute(strLevel)
end if
%>

Det jeg så vil have er at den som logger ind skal kunne se at hans level er "6" og hans brugernavn er "fido"

Hjælp please :D
Avatar billede apo Praktikant
18. februar 2005 - 21:47 #1
Hvad med:

brugerinfo("level") og brugerinfo("brugernavn") ?

Apo
Avatar billede thesurfer Nybegynder
18. februar 2005 - 21:48 #2
1) check altid om en post findes, med BOF og EOF (væn dig til det)
2) "id" er af typen tal, så konverter altid værdien (f.eks. session(...)) til tal med CInt
3) brug hellere "rs" (RecordSet) til poster (væn dig til det), da det bruges i de fleste eksempler (på nettet og i bøger)..

Lad os sige at "level"-feltet hedder "mylevel", og brugernavn-feltet hedder "myuser".

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)
end if

if rs.bof or rs.eof then
  response.write "fejl! ingen poster fundet!"
else
  brugernavn = rs("myuser")
  level = rs("mylevel")
end if

' husk at lukke forbindelsen:
set rs = nothing
conn.close
set conn = nothing

Derefter kan du bruge:

response.write "Dit navn er " & brugernavn & " og level er " & level & "."
Avatar billede apo Praktikant
18. februar 2005 - 21:50 #3
Altså:

<%=brugerinfo("level")%> og <%=brugerinfo("brugernavn")%> (<--- Indsættes i HTML-koden, der hvor du vil have udtrækket)
Avatar billede thesurfer Nybegynder
18. februar 2005 - 21:50 #4
Hvis du kommer i tvivl om noget, kig på http://www.html.dk/tutorials/asp/
Lektionerne 17-22 omhandler databaser.
Avatar billede apo Praktikant
18. februar 2005 - 21:54 #5
Ja, tutorials på HTML.dk er altid en god rettesnor :-)
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 22:07 #6
apo, kan du lige prøve st skrive koden som jeg skal skrive den ? Din måde virker lettere når jeg skal have blandet mit html og asp
Avatar billede apo Praktikant
18. februar 2005 - 22:24 #7
Når du vil indsætte udtræk direkte i HTML (et bestemt sted der er defineret af dig), skriver du således:

<%=brugerinfo("x")%> <-- 'x' er navnet på feltet i din database.


Hvis du benytter thesurfers metode, skriver du:

<%=rs("x")%> <-- Igen er 'x' navnet på feltet i din database.


Eksempel indsat i HTML:
<tr>
  <td width="100" height="10"><%=brugerinfo("level")%></td>
</tr>

Apo
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:29 #8
Egentligt er thesurfers metode: <%=brugernavn%> og <%=level%>

Jeg smider værdierne over i variabler og lukker databasen. Derefter kan jeg bruge variablerne, som jeg vil :-)

Hvis man kan undgå, at have åbne database-forbindelser, bør man gøre det. Men man skal altid lukke dem (på et eller andet tidspunkt).
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 22:44 #9
Jeg er total lost i det her, er der evt. en af jer som kunne være intresseret i at få mailet hele mit system også kigge det igennem ? evt. er jeg på msn med adressen webmaster@thomasnet.dk

Forhøjer til 200 points som tak for hjælpen...
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:46 #10
Du kan bare indsætte din kode her.. kun den relevante del..
Avatar billede apo Praktikant
18. februar 2005 - 22:48 #11
Det er måske ikke nødvendigt. Hvad kalder du felterne der repræsenterer værdierne "level" og "brugernavn"?
Avatar billede apo Praktikant
18. februar 2005 - 22:49 #12
Enig med thesurfer :-)
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:49 #13
PS: Husk Ekspertens regler (§2.1.12, §2.1.13): http://www.eksperten.dk/regler.phtml

heyheyhey.. reglerne er blevet opdateret :-)
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 22:51 #14
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)
end if

if rs.bof or rs.eof then
  response.write "fejl! ingen poster fundet!"
else
  brugernavn = rs("brugernavn")
  level = rs("level")
end if

' husk at lukke forbindelsen:
set rs = nothing
conn.close
set conn = nothing

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BMWForum.dk - Online BMW community</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="_Private/style.css" type="text/css">
</head>
<BR><BR>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-tl.gif" align="bottom" alt=""></td>
    <td class="topmiddle" width="760"><H1 align="center" class="quicktext">BMWForum.dk </h1></td>
    <td width="20"><img src="_Image/corner-tr.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>

<table class="Maintable" align="center" width="800" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td>
<img src="_Image/banner.jpg" align="bottom" alt="">
</td>
</tr>
</table>

<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="mainmenutable" style="background-image:_Image/table_bg_image.gif;background-repeat:repeat-x;">
<tr>
    <td colspan="2">
<CENTER><H1 Class="mainmenutext">
<a Class="open" href="default.asp">Forsiden</a> |
<a Class="closed">Om BMWForum.dk</a> |
<a Class="closed">Forum</a> |
<a Class="closed">Bruger Marked</a> |
<a Class="closed">Forhandler Marked</a> |
<a Class="closed">Artikler</a> |
<a Class="closed">Bruger Biler</a> |
<a Class="closed">Galleri</a> |
<a Class="closed">Links</a></H1></CENTER>
    </td>
</table>

<% if session("login") = "" then %>
<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="usermenutable">
  <tr>
  <td>
    <center>
    <H1 Class="usermenutext">
    Velkommen til BMWForum.dk du har følgende valgmuligheder
    <a Class="open" href="login.asp">Login</a>
    eller
    <a Class="open" href="opretbruger.asp">Opret ny bruger</a>
    </H1>
    </center>
  </td>
  </tr>
</table>
<% end if %>
    </td>
</tr>
</table>

<H1 Class="quickinfo">Bruger info</H1>
<H1 Class="quicktext">
Brugernavn: <%=rs("brugernavn")%>  <BR>
Status:  <BR>
<BR>
<a href="retbruger.asp">Ret din profil</a>

</H1>

<table align="center" width="802" border="0" bgcolor="#FFFFFF" cellspacing="10" cellpadding="10" class="Maintable">
<tr valign="top">
    <td width="625">

<H1 class="headline">BMW. Entusiast. Community</H1>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td><H1 class="normal">BMWForum.dk er stedet for entusiasten og den intresserede mødes, for at snakke/diskuterer/lærer og lære fra sig. Det er
nemlig her man kan mødes med ligesindet, læse artikler, kigge på billeder. Samt mødes med de andre på forummet osv.<BR><BR>
Endvidere vil vi på siden samt team bmwforum.dk sørge for nogle møder/arrangementer og træfs vil blive stablet på benene og her er du mere end velkommen
til at deltage.</h1></td>
    <td><img src="_Image/profiltacho.jpg" align="bottom" alt=""></td>
</tr>
</table>




</td>
   


<td class="quick" width="177">
<% if session("login") = "" then %>
<H1 Class="quickinfo">Information</H1>
<H1 Class="quicktext">Som medlem af BMWForum.dk får man nogle fordele, disse fordele kan der læses mere om
på disse sider. Vælg den side som er mest relevant for dig
<BR><BR>
Almindelig medlem<BR>
VIP medlem<BR>
Forhandler medlem</H1>
<% end if %>
<%
if session("login") <> "" then
    if brugerinfo("level") = 0 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 1 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 2 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 3 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 4 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 5 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 6 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 7 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 8 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 9 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    end if
end if
%>
</td>
</tr>
</table>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-l.gif" align="bottom" alt=""></td>
    <td class="bottommiddle" width="760"><H1 align="center" class="quicktext">Copyright © BMWForum.dk 2005 </h1></td>
    <td width="20"><img src="_Image/corner-r.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 22:52 #15
Sådan ser det hele ud, indsatte det hele da jeg er total lost lige nu...
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 22:55 #16
Defaultusermenu.asp frembringer det her:

<H1 Class="quickinfo">Bruger info</H1>
<H1 Class="quicktext">
Brugernavn: <%=rs("brugernavn")%>  <BR>
Status:  <BR>
<BR>
<a href="retbruger.asp">Ret din profil</a>

Det er en fejl det er kommet med ind i kildekoden foroven
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:57 #17
Du blander metoderne :-)

En rettelse til min kode:

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)

'''''''' jeg har fjernet "end if"

if rs.bof or rs.eof then
  response.write "fejl! ingen poster fundet!"
else
  brugernavn = rs("brugernavn")
  level = rs("level")
end if

' husk at lukke forbindelsen:
set rs = nothing

end if
conn.close
set conn = nothing


----


Du skal fremover kun bruge "brugernavn" og "level". "fremover" = alt efter "set conn = nothing"-linien
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:59 #18
hmm.. jeg har ikke fjernet "end if".. jeg har flyttet det ned i mellem "set rs = nothing" og "conn.close".

På den måde, lukkes conn altid, men rs lukkes kun når den har været brugt (session <> "")..
Avatar billede apo Praktikant
18. februar 2005 - 23:00 #19
Umiddelbart ser det ud som om, at du forsøger at kalde:

  strLevel = "select * from brugere where id = " & CInt(session("login"))

Med:

  brugerinfo("level")

Men executer med:

  set rs = conn.execute(strLevel)



Du skal enten anvende "rs" eller "brugerinfo" for at kalde værdierne, ikke begge dele.
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:05 #20
Det funker stadigvæk ikke, den klager over følgende fejl

Active Server Pages error 'ASP 0116'

Missing close of script delimiter

/bmw/_Include/checkID.asp, line 1

The Script block lacks the close of script tag (%>).
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:07 #21
Du mangler at afslutte ASP koden, med "%>" :-)
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:09 #22
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'brugerinfo'

/bmw/_Include/defaultusermenu.asp, line 8


så kommer der bare en ny fejl, det er pest eller kolera i denne her åndsvage kode hehe
Avatar billede apo Praktikant
18. februar 2005 - 23:11 #23
"Type mismatch: 'brugerinfo'

/bmw/_Include/defaultusermenu.asp, line 8 "

Du kalder åbenbart stadig værdierne med brugerinfo i linje 8, omdøb den til rs :-)
Avatar billede apo Praktikant
18. februar 2005 - 23:17 #24
Hvad er linje 8?
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:18 #25
Er der en af jer som kan prøve at skrive hele koden foroven så den virker ?

Nu har jeg prøvet at bytte frem og tilbage 50 gange og den siger stadig det samme
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:18 #26
apo linie 8 er </h1>
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:23 #27
Mit bud:


<%
dim brugernavn, level

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)

    if rs.bof or rs.eof then
        response.write "fejl! ingen poster fundet!"
    else
        brugernavn = rs("brugernavn")
        level = rs("level")
    end if

    ' husk at lukke forbindelsen:
    set rs = nothing

end if

conn.close
set conn = nothing

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BMWForum.dk - Online BMW community</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="_Private/style.css" type="text/css">
</head>
<BR><BR>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-tl.gif" align="bottom" alt=""></td>
    <td class="topmiddle" width="760"><H1 align="center" class="quicktext">BMWForum.dk </h1></td>
    <td width="20"><img src="_Image/corner-tr.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>

<table class="Maintable" align="center" width="800" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td>
<img src="_Image/banner.jpg" align="bottom" alt="">
</td>
</tr>
</table>

<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="mainmenutable" style="background-image:_Image/table_bg_image.gif;background-repeat:repeat-x;">
<tr>
    <td colspan="2">
<CENTER><H1 Class="mainmenutext">
<a Class="open" href="default.asp">Forsiden</a> |
<a Class="closed">Om BMWForum.dk</a> |
<a Class="closed">Forum</a> |
<a Class="closed">Bruger Marked</a> |
<a Class="closed">Forhandler Marked</a> |
<a Class="closed">Artikler</a> |
<a Class="closed">Bruger Biler</a> |
<a Class="closed">Galleri</a> |
<a Class="closed">Links</a></H1></CENTER>
    </td>
</table>

<% if session("login") = "" then %>
<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="usermenutable">
  <tr>
  <td>
    <center>
    <H1 Class="usermenutext">
    Velkommen til BMWForum.dk du har følgende valgmuligheder
    <a Class="open" href="login.asp">Login</a>
    eller
    <a Class="open" href="opretbruger.asp">Opret ny bruger</a>
    </H1>
    </center>
  </td>
  </tr>
</table>
<% end if %>
    </td>
</tr>
</table>

<H1 Class="quickinfo">Bruger info</H1>
<H1 Class="quicktext">
Brugernavn: <%=brugernavn%>  <BR>
Status:  <BR>
<BR>
<a href="retbruger.asp">Ret din profil</a>

</H1>

<table align="center" width="802" border="0" bgcolor="#FFFFFF" cellspacing="10" cellpadding="10" class="Maintable">
<tr valign="top">
    <td width="625">

<H1 class="headline">BMW. Entusiast. Community</H1>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td><H1 class="normal">BMWForum.dk er stedet for entusiasten og den intresserede mødes, for at snakke/diskuterer/lærer og lære fra sig. Det er
nemlig her man kan mødes med ligesindet, læse artikler, kigge på billeder. Samt mødes med de andre på forummet osv.<BR><BR>
Endvidere vil vi på siden samt team bmwforum.dk sørge for nogle møder/arrangementer og træfs vil blive stablet på benene og her er du mere end velkommen
til at deltage.</h1></td>
    <td><img src="_Image/profiltacho.jpg" align="bottom" alt=""></td>
</tr>
</table>




</td>
   


<td class="quick" width="177">
<% if session("login") = "" then %>
<H1 Class="quickinfo">Information</H1>
<H1 Class="quicktext">Som medlem af BMWForum.dk får man nogle fordele, disse fordele kan der læses mere om
på disse sider. Vælg den side som er mest relevant for dig
<BR><BR>
Almindelig medlem<BR>
VIP medlem<BR>
Forhandler medlem</H1>
<% end if %>
<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 1 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 2 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 3 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 4 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 5 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 6 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 7 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 8 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif brugerinfo("level") = 9 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    end if
end if
%>
</td>
</tr>
</table>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-l.gif" align="bottom" alt=""></td>
    <td class="bottommiddle" width="760"><H1 align="center" class="quicktext">Copyright © BMWForum.dk 2005 </h1></td>
    <td width="20"><img src="_Image/corner-r.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:24 #28
Der var jeg vist lidt for hurtig :-)

prøver igen:


<%
dim brugernavn, level

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)

    if rs.bof or rs.eof then
        response.write "fejl! ingen poster fundet!"
    else
        brugernavn = rs("brugernavn")
        level = rs("level")
    end if

    ' husk at lukke forbindelsen:
    set rs = nothing

end if

conn.close
set conn = nothing

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BMWForum.dk - Online BMW community</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="_Private/style.css" type="text/css">
</head>
<BR><BR>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-tl.gif" align="bottom" alt=""></td>
    <td class="topmiddle" width="760"><H1 align="center" class="quicktext">BMWForum.dk </h1></td>
    <td width="20"><img src="_Image/corner-tr.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>

<table class="Maintable" align="center" width="800" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td>
<img src="_Image/banner.jpg" align="bottom" alt="">
</td>
</tr>
</table>

<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="mainmenutable" style="background-image:_Image/table_bg_image.gif;background-repeat:repeat-x;">
<tr>
    <td colspan="2">
<CENTER><H1 Class="mainmenutext">
<a Class="open" href="default.asp">Forsiden</a> |
<a Class="closed">Om BMWForum.dk</a> |
<a Class="closed">Forum</a> |
<a Class="closed">Bruger Marked</a> |
<a Class="closed">Forhandler Marked</a> |
<a Class="closed">Artikler</a> |
<a Class="closed">Bruger Biler</a> |
<a Class="closed">Galleri</a> |
<a Class="closed">Links</a></H1></CENTER>
    </td>
</table>

<% if session("login") = "" then %>
<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="usermenutable">
  <tr>
  <td>
    <center>
    <H1 Class="usermenutext">
    Velkommen til BMWForum.dk du har følgende valgmuligheder
    <a Class="open" href="login.asp">Login</a>
    eller
    <a Class="open" href="opretbruger.asp">Opret ny bruger</a>
    </H1>
    </center>
  </td>
  </tr>
</table>
<% end if %>
    </td>
</tr>
</table>

<H1 Class="quickinfo">Bruger info</H1>
<H1 Class="quicktext">
Brugernavn: <%=brugernavn%>  <BR>
Status:  <BR>
<BR>
<a href="retbruger.asp">Ret din profil</a>

</H1>

<table align="center" width="802" border="0" bgcolor="#FFFFFF" cellspacing="10" cellpadding="10" class="Maintable">
<tr valign="top">
    <td width="625">

<H1 class="headline">BMW. Entusiast. Community</H1>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
    <td><H1 class="normal">BMWForum.dk er stedet for entusiasten og den intresserede mødes, for at snakke/diskuterer/lærer og lære fra sig. Det er
nemlig her man kan mødes med ligesindet, læse artikler, kigge på billeder. Samt mødes med de andre på forummet osv.<BR><BR>
Endvidere vil vi på siden samt team bmwforum.dk sørge for nogle møder/arrangementer og træfs vil blive stablet på benene og her er du mere end velkommen
til at deltage.</h1></td>
    <td><img src="_Image/profiltacho.jpg" align="bottom" alt=""></td>
</tr>
</table>




</td>
   


<td class="quick" width="177">
<% if session("login") = "" then %>
<H1 Class="quickinfo">Information</H1>
<H1 Class="quicktext">Som medlem af BMWForum.dk får man nogle fordele, disse fordele kan der læses mere om
på disse sider. Vælg den side som er mest relevant for dig
<BR><BR>
Almindelig medlem<BR>
VIP medlem<BR>
Forhandler medlem</H1>
<% end if %>
<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 1 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 2 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 3 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 4 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 5 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 6 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 7 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 8 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    elseif level = 9 then
        Server.Execute("_Usermenu/defaultusermenu.asp")
    end if
end if
%>
</td>
</tr>
</table>

<center>
<table width="800" height="20" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td width="20"><img src="_Image/corner-l.gif" align="bottom" alt=""></td>
    <td class="bottommiddle" width="760"><H1 align="center" class="quicktext">Copyright © BMWForum.dk 2005 </h1></td>
    <td width="20"><img src="_Image/corner-r.gif" align="bottom" alt=""></td>
</tr>
</table>
</center>
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:27 #29
Et hint:

Der er en bedre metode, end "if .. then .. elseif .. then..". Det er ved brug af Select Case.

Eksempel:

if session("login") <> "" then
Select Case level
case 0
  Server.Execute("_Usermenu/defaultusermenu.asp")

case 1
  Server.Execute("_Usermenu/defaultusermenu.asp")

case 2
  ...

' hvis level ikke er nogen af de mulige, hvis da en "standard" side:

case else
  Server.Execute("_Usermenu/defaultusermenu_standard_siden.asp")

End Select
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:33 #30
Nu siger den problemet er i linie 10 i denne her kode

<table width="802" align="center" border="0" cellspacing="0" cellpadding="0" class="usermenutable">
  <tr>
  <td>
    <center>
    <H1 Class="usermenutext">
<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/level1.asp")
    elseif brugerinfo("level") = 1 then
        Server.Execute("_Usermenu/level2.asp")
    elseif brugerinfo("level") = 2 then
        Server.Execute("_Usermenu/level3.asp")
    elseif brugerinfo("level") = 3 then
        Server.Execute("_Usermenu/level4.asp")
    elseif brugerinfo("level") = 4 then
        Server.Execute("_Usermenu/level5.asp")
    elseif brugerinfo("level") = 5 then
        Server.Execute("_Usermenu/level6.asp")
    elseif brugerinfo("level") = 6 then
        Server.Execute("_Usermenu/level7.asp")
    elseif brugerinfo("level") = 7 then
        Server.Execute("_Usermenu/level8.asp")
    elseif brugerinfo("level") = 8 then
        Server.Execute("_Usermenu/level9.asp")
    elseif brugerinfo("level") = 9 then
        Server.Execute("_Usermenu/level10.asp")
    end if
end if
%>
    </H1>
    </center>
  </td>
  </tr>
</table>
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:37 #31
Det er fordi jeg glemte at rette alle brugerinfo("level").. se min rettelse: 18/02-2005 23:24:27
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:40 #32
Hehe nu virker det hele igen, men der kommer bare ikke noget brugernavn op ?
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:42 #33
Show us the money! :-)

Vis os database-delen :-)
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:43 #34
Jeg skulle sådan set bare kunne sætte det her ind <%=brugernavn%> hvor det passer mig så burde det komme op ikke ???
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:44 #35
Jo, så længe at der er efter linien brugernavn = rs("brugernavn")
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:44 #36
Det her kalder jeg databasen med

<%
dim brugernavn, level

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if session("login") <> "" then
  strLevel = "select * from brugere where id = " & CInt(session("login"))
  set rs = conn.execute(strLevel)

    if rs.bof or rs.eof then
        response.write "fejl! ingen poster fundet!"
    else
        brugernavn = rs("brugernavn")
        level = rs("level")
    end if

    ' husk at lukke forbindelsen:
    set rs = nothing

end if

conn.close
set conn = nothing

%>


Det ligger i en fil jeg kalder checkID.asp som bliver kaldt ind i toppen af alle sider emd include funktionen
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:44 #37
Du kan altid teste med: <% response.write "*" & brugernavn & "*" %>

Hvis der bare står "**", er det fordi der ikke står noget i brugernavn..
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:45 #38
Hmm.. måske skal du putte linien "dim brugernavn, level" i de dokumenter, der kalder filen.

Alternativt kan du kalde filen 1 gange, og gemme de info i sessions..
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:47 #39
Der kommer bare to stjerner ** vis jeg prøver med det, men jeg er logget ind som administrator
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:48 #40
http://www.thomasnet.dk/bmw/ der kan i se siden og måske få en ide om hva det er jeg prøver, feel free til at oprette en bruger
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:52 #41
Når det gælder sider, hvor man har profiler, og hele tiden skal skrive navnet, er det klart bedst, at putte navnet i en session.

i stedet for:

brugernavn = rs("brugernavn")
level = rs("level")

bruger du:

session("brugernavn") = rs("brugernavn")
session("level") = rs("level")

Derefter erstatter du alle: <%=brugernavn%> og <%=level%>
med: <%=session("brugernavn")%> og <%=session("level")%>
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:55 #42
YESSSSS nu virker det !!!!

Det skulle åbenbart bare i session for at virke !

Så skal jeg vel bare lave dem identiske hele vejen igennem, også burde det virke ?
Avatar billede thesurfer Nybegynder
18. februar 2005 - 23:58 #43
Ja.. tror jeg.. forstår ikke helt hvad du mener.. men, ja.. :-)
Avatar billede tekniskdesigner Nybegynder
18. februar 2005 - 23:59 #44
Cool i skal have 1000 tak begge 2 for hjælpen!!!

Forhøjer lige til 200 points så vis i ville ligge et svar så er der 100 spir på vej til jer begge :D

Endnu engang tak for hjælpen...
Avatar billede thesurfer Nybegynder
19. februar 2005 - 00:00 #45
Roger that :-)
'så lidt :-)
Takker for points :-)
Avatar billede apo Praktikant
19. februar 2005 - 00:02 #46
Godt at du fik det til at virke (det var dog thesurfer der lavede det meste benarbejde).

Apo
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 00:43 #47
Af en elelr anden mærkelig grund så er den fløjtende lige glad nu med hvilke level man er, hva kan være i vejen ?
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 13:02 #48
Håber i gider lige bruge et par minutter mere på mig :D

Når man trykker login bliver man sendt til denne fil som hedder checkuser.asp

der står følgende kode, hva skal ændres før det passer med det nye ?

<%
func = Request.Querystring("func")

    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")

if func = "login" then
    user = Replace(Server.HTMLEncode(Request.Form("brugernavn")), "'", "")
    kode = Replace(Server.HTMLEncode(Request.Form("adgangskode")), "'", "")

    strSQL = "SELECT * FROM brugere WHERE brugernavn = '"& user &"' AND adgangskode = '"& kode &"'"
    set rs = Conn.Execute(strSQL)
   
    if rs.bof or rs.eof then
        response.redirect("login.asp?fejl=login")
    else
        session("login") = rs("id")
        session("level") = rs("level")
        response.redirect("./")
    end if
elseif func = "opret" then
    strCheck = "SELECT * FROM brugere WHERE brugernavn = '"& Request.Form("brugernavn") &"'"
    set rs = Conn.Execute(strCheck)
   
    if rs.bof or rs.eof then
        if Request.Form("adgangskode") = Request.Form("adgangskode2") then
            strSQL = "Insert into brugere ("
           
            strSQL = strSQL & "brugernavn, "
            strSQL = strSQL & "adgangskode, "
            strSQL = strSQL & "fornavn, "
            strSQL = strSQL & "efternavn, "
            strSQL = strSQL & "email) "
           
            strSQL = strSQL & "values( "
           
            strSQL = strSQL & "'"& Request.Form("brugernavn") &"', "
            strSQL = strSQL & "'"& Request.Form("adgangskode") &"', "
            strSQL = strSQL & "'"& Request.Form("fornavn") &"', "
            strSQL = strSQL & "'"& Request.Form("efternavn") &"', "
            strSQL = strSQL & "'"& Request.Form("email") &"')"
           
            Conn.Execute(strSQL)
                response.redirect("opretok.asp")
        else
            response.redirect("opretbruger.asp?fejl=kode")
        end if
    else
        response.redirect("opretbruger.asp?fejl=optaget")
    end if
elseif func = "ret" then
    strCheck = "SELECT * FROM brugere WHERE id = "& session("login") &""
    set rs = Conn.Execute(strCheck)
   
    if not rs.bof or rs.eof then
        if Request.Form("adgangskode") = Request.Form("adgangskode2") then
            strSQL = "Update brugere set "
            strSQL = strSQL & "adgangskode = '"& Request.Form("adgangskode") &"', "
            strSQL = strSQL & "fornavn = '"& Request.Form("fornavn") &"', "
            strSQL = strSQL & "efternavn = '"& Request.Form("efternavn") &"', "
            strSQL = strSQL & "email = '"& Request.Form("email") &"' "
            strSQL = strSQL & " Where Id = "& session("login") &""
           
            Conn.Execute(strSQL)
                response.redirect("retbruger.asp?fejl=ok")
        else
            response.redirect("retbruger.asp?fejl=kode")
        end if
    else
        response.redirect("retbruger.asp?fejl=findesikke")
    end if
elseif func = "update" then
    strUpdate = "UPDATE brugere SET [level] = '"& Request.Form("level"& Request.QueryString("id") &"") &"' WHERE id = "& Request.QueryString("id") &""
    Conn.Execute(strUpdate)
        response.redirect("levels.asp")
elseif func = "logaf" then
    session.abandon
    response.redirect("./")
end if
%>
Avatar billede apo Praktikant
19. februar 2005 - 13:15 #49
Hvilke fejlmeddelelser får du?

... Og tak for points :-)
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 13:15 #50
Der kommer ingen fejl meddelelse, men det er lige meget hvilke level brugeren har det er level1.asp der kommer frem hver gang
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 13:17 #51
Levels.asp ser sådan her ud vis det skal bruges til noget

<%
if session("login") = "" AND session("level") <> 9 then
response.redirect("login.asp")
end if
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("_Private/userdatabase.mdb")
strSQL = "SELECT * FROM brugere ORDER BY brugernavn"
set brugere = Conn.Execute(strSQL)
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BMWForum.dk - Admin område - Ret Levels</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="450" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="25" colspan="2"><a href="./">G&aring; tilbage til forsiden... </a></td>
  </tr>
  <tr>
    <td width="250" height="25"><strong>Brugernavn:</strong></td>
    <td width="200" align="left"><strong>Level:</strong></td>
  </tr>
  <% Do %>
  <form action="checkuser.asp?func=update&id=<%=brugere("id")%>" method="post">
  <tr>
    <td height="25"><%=brugere("brugernavn")%></td>
    <td>
    <%
    response.write("<select name=""level"& brugere("id") &""">")
    For t = 0 to 9
    if t = brugere("level") then
    response.write("<option value="""& t &""" selected>Level "& t+1 &"</option>")
    else
    response.write("<option value="""& t &""">Level "& t+1 &"</option>")
    end if
    Next
    response.write("</select>")
    %>
    <input type="submit" name="Submit" value="Update">
    </td>
  </tr>
  </form>
  <%
  brugere.movenext
  Loop While Not brugere.eof
  %>
</table>
<BR><BR>
<B>Level 1:</B><I> Registret bruger</I><BR> 
<B>Level 2:</B><I> VIP Bruger</I><BR> 
<B>Level 3:</B><I> Forhandler</I><BR> 
<B>Level 4:</B><I> Super Forhandler</I><BR> 
<B>Level 5:</B><I> Event management</I><BR> 
<B>Level 6:</B><I> </I><BR> 
<B>Level 7:</B><I> </I><BR> 
<B>Level 8:</B><I> </I><BR> 
<B>Level 9:</B><I> CoAdmin</I><BR> 
<B>Level 10:</B><I> Administrator</I><BR> 
<BR><BR>
</body>
</html>
Avatar billede apo Praktikant
19. februar 2005 - 13:25 #52
Du anvender stadig andet end 'rs':

  f.eks.: set brugere = Conn.Execute(strSQL)

Prøv i første omgang at ændre det hele til 'rs' (det er sikkert der at det går galt)

Apo
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 13:35 #53
Jeg forstår ikke lige hvad det er det skal ændres til...

Gider du apo ikke ændre det i filerne så kan jeg gå ind og se hva det nye er og hva det gamle er
Avatar billede apo Praktikant
19. februar 2005 - 13:43 #54
Jeg har ikke tid i dag til at foretage ændringer af den størrelse :-/

Men, du har vel ændret denne (se dine koder i tidligere indlæg i dette spørgsmål):

<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/level1.asp")
    elseif brugerinfo("level") = 1 then
        Server.Execute("_Usermenu/level2.asp")
    elseif brugerinfo("level") = 2 then
        Server.Execute("_Usermenu/level3.asp")
    elseif brugerinfo("level") = 3 then
        Server.Execute("_Usermenu/level4.asp")
    elseif brugerinfo("level") = 4 then
        Server.Execute("_Usermenu/level5.asp")
    elseif brugerinfo("level") = 5 then
        Server.Execute("_Usermenu/level6.asp")
    elseif brugerinfo("level") = 6 then
        Server.Execute("_Usermenu/level7.asp")
    elseif brugerinfo("level") = 7 then
        Server.Execute("_Usermenu/level8.asp")
    elseif brugerinfo("level") = 8 then
        Server.Execute("_Usermenu/level9.asp")
    elseif brugerinfo("level") = 9 then
        Server.Execute("_Usermenu/level10.asp")
    end if
%>

Til denne:

<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/level1.asp")
    elseif rs("level") = 1 then
        Server.Execute("_Usermenu/level2.asp")
    elseif rs("level") = 2 then
        Server.Execute("_Usermenu/level3.asp")
    elseif rs("level") = 3 then
        Server.Execute("_Usermenu/level4.asp")
    elseif rs("level") = 4 then
        Server.Execute("_Usermenu/level5.asp")
    elseif rs("level") = 5 then
        Server.Execute("_Usermenu/level6.asp")
    elseif rs("level") = 6 then
        Server.Execute("_Usermenu/level7.asp")
    elseif rs("level") = 7 then
        Server.Execute("_Usermenu/level8.asp")
    elseif rs("level") = 8 then
        Server.Execute("_Usermenu/level9.asp")
    elseif rs("level") = 9 then
        Server.Execute("_Usermenu/level10.asp")
    end if
%>

Ikke?


I øvrigt ville jeg selv skrive den således:

<%
if session("login") <> "" then
    if level = 0 then
        Response.Redirect "_Usermenu/level1.asp"
    elseif rs("level") = 1 then
        Response.Redirect "_Usermenu/level2.asp"
    elseif rs("level") = 2 then
        Response.Redirect "_Usermenu/level3.asp"
    elseif rs("level") = 3 then
        Response.Redirect "_Usermenu/level4.asp"
    elseif rs("level") = 4 then
        Response.Redirect "_Usermenu/level5.asp"
    elseif rs("level") = 5 then
        Response.Redirect "_Usermenu/level6.asp"
    elseif rs("level") = 6 then
        Response.Redirect "_Usermenu/level7.asp"
    elseif rs("level") = 7 then
        Response.Redirect "_Usermenu/level8.asp"
    elseif rs("level") = 8 then
        Response.Redirect "_Usermenu/level9.asp"
    else
        Response.Redirect "_Usermenu/level10.asp"
    end if
%>

Bemærk! At jeg har ændret 'brugerinfo' til 'rs' og 'Server.Execute' til 'Response.Redirect'

Apo
Avatar billede apo Praktikant
19. februar 2005 - 13:50 #55
I øvrigt er der en fejl i din kode... Når du f.eks. kalder:
  'brugerinfo("level") = 1'

viderestiller du (ifølge ovenstående kode) til 'level2.asp'
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 13:59 #56
Nej den kode ændrede vi jo til følgende i går

<%
if session("login") <> "" then
    if level = 0 then
        Server.Execute("_Usermenu/level1.asp")
    elseif level = 1 then
        Server.Execute("_Usermenu/level2.asp")
    elseif level = 2 then
        Server.Execute("_Usermenu/level3.asp")
    elseif level = 3 then
        Server.Execute("_Usermenu/level4.asp")
    elseif level = 4 then
        Server.Execute("_Usermenu/level5.asp")
    elseif level = 5 then
        Server.Execute("_Usermenu/level6.asp")
    elseif level = 6 then
        Server.Execute("_Usermenu/level7.asp")
    elseif level = 7 then
        Server.Execute("_Usermenu/level8.asp")
    elseif level = 8 then
        Server.Execute("_Usermenu/level9.asp")
    elseif level = 9 then
        Server.Execute("_Usermenu/level10.asp")
    end if
end if
%>
Avatar billede apo Praktikant
19. februar 2005 - 14:07 #57
Iøvrigt vil jeg skrive den således:

<%
if session("login") <> "" then

    level = Session("level") ' <-- Du skal hente brugerens level

    if level = 1 then
        Response.Redirect "_Usermenu/level1.asp"
    elseif rs("level") = 2 then
        Response.Redirect "_Usermenu/level2.asp"
    elseif rs("level") = 3 then
        Response.Redirect "_Usermenu/level3.asp"
    elseif rs("level") = 4 then
        Response.Redirect "_Usermenu/level4.asp"
    elseif rs("level") = 5 then
        Response.Redirect "_Usermenu/level5.asp"
    elseif rs("level") = 6 then
        Response.Redirect "_Usermenu/level6.asp"
    elseif rs("level") = 7 then
        Response.Redirect "_Usermenu/level7.asp"
    elseif rs("level") = 8 then
        Response.Redirect "_Usermenu/level8.asp"
    elseif rs("level") = 9 then
        Response.Redirect "_Usermenu/level9.asp"
    elseif rs("level") = 10 then
        Response.Redirect "_Usermenu/level10.asp"
    else
        Response.Redirect "_Usermenu/level1.asp"
    end if
  end if
%>

Prøv at se om den virker...
Avatar billede apo Praktikant
19. februar 2005 - 14:28 #58
Hold da op hvor jeg roder :-)

Jeg prøver lige igen... Denne gang har jeg ændret koden så 'level' bliver hentet af en session (Jeg har sat det op i en select case, der gør det mere overskueligt - funktionaliteten er den samme):

<%
If Session("login") <> "" Then

Select Case Session("level")
  Case = 1
      Response.redirect "_Usermenu/level1.asp"
  Case = 2
      Response.redirect "_Usermenu/level2.asp"
  Case = 3
      Response.redirect "_Usermenu/level3.asp"
  Case = 4
      Response.redirect "_Usermenu/level4.asp"
  Case = 5
      Response.redirect "_Usermenu/level5.asp"
  Case = 6
      Response.redirect "_Usermenu/level6.asp"
  Case = 7
      Response.redirect "_Usermenu/level7.asp"
  Case = 8
      Response.redirect "_Usermenu/level8.asp"
  Case = 9
      Response.redirect "_Usermenu/level9.asp"
  Case = 10
      Response.redirect "_Usermenu/level10.asp"
  Case Else
      Response.redirect "_Usermenu/level1.asp"
End Select
End If

Apo
Avatar billede tekniskdesigner Nybegynder
19. februar 2005 - 14:41 #59
Takker, jeg kigger lige på det igen i aften, har 1 bil der kalder hehe
Avatar billede apo Praktikant
19. februar 2005 - 14:50 #60
Helt i orden
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