15. august 2001 - 14:56Der er
18 kommentarer og 1 løsning
Tjekke post i recordset
Jeg skal tjekke, hvilke rettigheder brugeren har på mit site - derfor har jeg lavet dette:
<% Dim Conn Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\\\Nne00\\wwwroot\\database\\site-ka\\suporg.mdb;\"
\' Find Brugerens loginnavn (skal være på formen domæne/bruger) User = Request.Servervariables(\"LOGON_USER\")
tmpArr = SPLIT( User, \"\\\" ) Side = tmpArr(0) User = tmpArr( UBOUND(tmpArr) )
session(\"User\") = lcase(User)
Rettigheder = 1
Dim RS, DB Set RS = Conn.Execute(\"Select * From Session Where User = \'\" & User & \"\'\") If RS.EOF Then Sql = \"INSERT INTO Session (User, Rettigheder, Side)\" Sql = Sql & \"VALUES(\'\" & User & \"\',\'\" & Rettigheder & \"\',\'\" & Side & \"\')\" Conn.Execute (SQL)
\' Her hiver vi indholdet af databasen ud, sorterer dem efter User Sql = \"SELECT * FROM Session ORDER BY User DESC\" Set Record = Conn.Execute(Sql) %> <html>
\' Her hiver vi indholdet af databasen ud, sorterer dem efter User Sql = \"SELECT * FROM Session ORDER BY User DESC\" Set Record = Conn.Execute(Sql)
Bruger = \"Du er bruger\" Admin = \"Du er admin\"
Dim Ret sql = \"select User from tabel\" set record=conn.execute(sql) If Instr(record(\"User\"), \"(\"\'User\'\")\") > 1 Then Ret = (\"Admin\")\" else Ret = (\"Bruger\") end if
<% Do While Not Record.EOF %> <td style=\"font-size: 12px; font-weight: bold\"><% Response.Write Record(\"User\")%></td> <td align=\"center\" style=\"font-size: 12px; font-weight: bold\"><% Response.Write Record(\"Rettigheder\")%></td> <td align=\"center\" style=\"font-size: 12px; font-weight: bold\"><% Response.Write Record(\"Side\")%></td> </tr> <tr> <td align=\"center\" cellspan=\"3\">SÆTTES IND HER</td>
<% Record.MoveNext Loop %> </table>
</body> </html> <% End if Conn.Close Set Conn = Nothing %>
Der er faktisk først efter \"else\" det bliver interessant! Rettigheder kan have værdien 1 (bruger) og 2 (admin). Hvor ligger fejlen i det jeg har lavet og hvordan udskriver (skærm) jeg resultatet til der hvor jeg har skrevet \"SÆTTES IND HER\"?
Kmadd > Kan du ikke skære det ud i pap for mig? Hvor tester du på nuværende bruger (User)? Rettigheder er jo konstant i øverste del af if-sætningen. Men hvis brugeren har besøgt siden før bliver rettigheder ikke tjekket - så jeg vil da tro man er nød til at smutte in og finde User og dermed finde de tilhørende rettigheder!
\' Her hiver vi indholdet af databasen ud, sorterer dem efter User Sql = \"SELECT * FROM Session ORDER BY User DESC\" Set Record = Conn.Execute(Sql)
Bruger = \"Du er bruger\" Admin = \"Du er admin\"
Dim Ret sql = \"select User from Session\" set record=conn.execute(sql) If Instr(record(\"User\"), \"User\" ) > 1 Then Ret = Bruger else Ret = Admin end if %> ------------------ <td align=\"center\" cellspan=\"3\"><%= Ret %></td>
Jeg får fejlen:
ADODB.Recordset (0x800A0CC1) Item cannot be found in the collection corresponding to the requested name or ordinal.
det er denne if...then som sjekker om du er admin eller ikke ?!
If Instr(record(\"User\"), \"User\" ) > 1 Then Ret = Bruger else Ret = Admin end if
Jeg vet ikke helt hva som skjer her, men du må bare prøve deg frem. Legg inn noen response.write inne i if statementen for å e hva som skjer
If Instr(record(\"User\"), \"User\" ) > 1 Then response.write \"if...then er true\" Ret = Bruger else response.write \"if...then er false\" Ret = Admin end if
det var så litt :) jeg har fått noen points av deg idag, ja, og takk for dem :)
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.