Avatar billede yoohan Nybegynder
30. januar 2004 - 13:05 Der er 11 kommentarer og
1 løsning

Lave link hvis bruger er logget ind

Hej alle

Kig på følgende linier:
If Session("svUserID") <> "" Then
Bibliotek_fundne.Source = "SELECT *  FROM Dokumentarkiv  WHERE Doktype LIKE '%" + Replace(Bibliotek_fundne__varType, "'", "''") + "%' AND Dokint NOT LIKE '1' AND Doksprog LIKE '%DK%' AND Dokps LIKE '%' AND (Doktypenr LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%' OR Doknavn LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%' OR Dokkeywords LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%')  ORDER BY " + Replace(Bibliotek_fundne__varSort, "'", "''") + ""
Else
Bibliotek_fundne.Source = "SELECT *  FROM Dokumentarkiv  WHERE Doktype LIKE '%" + Replace(Bibliotek_fundne__varType, "'", "''") + "%' AND Dokint NOT LIKE '1' AND Doksprog LIKE '%DK%' AND Dokps LIKE '0' AND (Doktypenr LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%' OR Doknavn LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%' OR Dokkeywords LIKE '%" + Replace(Bibliotek_fundne__varKey, "'", "''") + "%')  ORDER BY " + Replace(Bibliotek_fundne__varSort, "'", "''") + ""
End If

Det er en kode der tjekket om Session("svUserID") <> "" og hvis ja, laves et anderledes SQL sætning. Det virker fint.

Der laves en tabel, hvor forespørgsel vises:

<TR>
                  <td width="100" class="tabel" height="30"><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><%=(Bibliotek_fundne.Fields.Item("Doktypenr").Value)%></a></td>
                  <td width="117" class="tabel" height="30"><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><%=(Bibliotek_fundne.Fields.Item("Doktype").Value)%></a></td>
                  <td width="220" class="tabel" height="30"><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><%=(Bibliotek_fundne.Fields.Item("Doknavn").Value)%></a></td>
                  <td width="50" class="tabel" height="30"><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><img src="../../Images/common/<%=(Bibliotek_fundne.Fields.Item("Dokikon").Value)%>" border="0"></a></td>
</tr>

Kunne man istedet nøjes én SQL forespørgsel og istedet i tabellen KUN LADE LINK VÆRE AKTIVE HVIS SESSION Session("svUserID") <> "" ???

Det ville være rart hvis brugerne kunne se hvad de får, hvis de er logget ind - en form for "madding" :-)
Avatar billede dj-sejler Praktikant
30. januar 2004 - 13:17 #1
<% if session("svUserID") <> "" then %> link til et eller andet
<% else %>
der er ikke noget link til dig
<% end if %>

Er det det du mener?


eller

<% if session("svUserID") <> "" then %> link til et eller andet
<% else
Response.Redirect("login.asp")
end if %>
Avatar billede stingbat Nybegynder
30. januar 2004 - 13:22 #2
<td width="100" class="tabel" height="30"><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><%=(Bibliotek_fundne.Fields.Item("Doktypenr").Value)%></a></td>
-->
<td width="100" class="tabel" height="30"><% If Session("svUserID") <> "" Then %><a href="<%=(Bibliotek_fundne.Fields.Item("Dokplacering").Value)%>" target="_blank"><% End If %><%=(Bibliotek_fundne.Fields.Item("Doktypenr").Value)%><% If Session("svUserID") <> "" Then  %></a><% End If %></td>

Ikke det store i det...
Men mht. til din SQL-sætning, kunne du dele den lidt op - er jo kun "Dokps LIKE '0'" som bliver ændret, efter hvad jeg lige skimmede igennem....
Avatar billede yoohan Nybegynder
30. januar 2004 - 14:22 #3
Stingbat:
Din metode er sådanset den eftersøgte. Men det jeg eftersøgte var nu en metode hvor NOGLE af dokumenterne kunne ses/åbnes af alle, mens ANDRE kun var aktive links hvis if session("svUserID") <> "" og Dokps = 1

I databasen er Dokps feltet niveau for dokumentet. 0 = kan ses af alle, 1 = Kun for medlemmer...
Avatar billede stingbat Nybegynder
30. januar 2004 - 14:28 #4
Mht. til 0 og 1 (så længe at du kun har de to), kan du gøre således:
"... Dokps LIKE '" & (Session("svUserID") <> "" AND 1) & "' AND ..."
Avatar billede yoohan Nybegynder
30. januar 2004 - 14:34 #5
Stingbat:
Sorry, men jeg ved ikke hvad du mener :-(

Kan du pensle det mere ud?
Avatar billede stingbat Nybegynder
30. januar 2004 - 14:39 #6
Altså... hvis nu at du i databasen, kun har 2 niveauer, ved du vha. den ændring i SQL-stringen, gøre så at hvis svUserID er sat, så vil denne jo være sand - og når man så har "AND 1", vil det medføre, at hvis den er sat bliver værdien 1, og hvis ikke, bliver den 0
Avatar billede yoohan Nybegynder
30. januar 2004 - 15:30 #7
Hmmm, kan godt se hvad du mener, men jeg tror vi snakker forbi hinanden...

SQL'en SKAL hive ALLE records ud.
Alle records hvor Dokps = 0 skal være aktive links
Alle records hvor Dokps = 1 skal KUN være aktive når svUserID <> fra 0
Avatar billede yoohan Nybegynder
30. januar 2004 - 15:32 #8
Dvs. at ALLE records vises, men kun hvis du er logget ind (session <> 0) er link aktiv for de record hvor Dokps = 1.
Avatar billede stingbat Nybegynder
30. januar 2004 - 15:38 #9
Hm... så den skal trække SAMTLIGE ud, men kun vise enkelte, hvis logget ind?!

Så kan du evt. nøjes med at ændre:
If Session("svUserID") <> "" Then

til f.eks.:
If Session("svUserID") <> "" OR Bibliotek_fundne("Dokps") = 0 Then
Avatar billede yoohan Nybegynder
30. januar 2004 - 15:51 #10
Se det lyder rigtigt! Kan desværre første tjekke det på tirsdag, men du kunne starte med at lave et svar - så kommer pointene når jeg har prøvet det af...

/yoohan
Avatar billede stingbat Nybegynder
30. januar 2004 - 16:08 #11
I orden :)

Men du skriver bare hvis det er ....
Avatar billede yoohan Nybegynder
03. februar 2004 - 11:30 #12
Hej Stingbat

Din løsning virker perfekt. Tak for hjælpen!

/yoohan
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