webForumDet fria alternativet

Lösenordsskydd

ASP

10 svar · 393 visningar · startad av Lorelie

Medlem sedan juni 2005264 inlägg
Frågan#1

Har ett forum, http://www.skaraborgssps.org/hb

Folk är trögfattade... de skriver nya frågor i gamla trådar utan att bry sig om reglerna (att svara behöver man inte vara medlem för), för att få stopp på det här misstänker jag att jag får lösenordsskydda även svaren, men hur gör jag det?

Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Välkommen till Webforum!

Jag antar att webbplatsen du menar är https://www.skaraborgsps.org/hb/?

Det enklaste är väl att ta bort Svara-knappen helt, och endast visa den för de inloggade.
Det allra enklaste vore ju att inte visa forumet innan man är inloggad.

Å andra sidan är det irriterande med forum där man måste registrera sig för att kunna svara.
Man kan ju passera förbi, läsa en fråga man kan svaret på, men inte vilja registrera sig.

Moderera svaren, dvs publicera dem inte förrän du godkänt dem?
Också irriterande.

Jag antar att du måste radera inlägg nu, eftersom du skriver detta.
Det är ett val man får göra, alla webbplatser kräver underhåll, varje timme eller varje månad.

Medlem sedan juni 2005264 inlägg
#3

Det enklaste är väl att ta bort Svara-knappen helt, och endast visa den för de inloggade.

Det är ju det jag menar, men hur får jag till det? Har fått hjärnsläpp :l

Medlem sedan juni 20019 519 inlägg
#4

if inloggad then
skriv ut knapp
end if

.. hur är det du gör kontroll? är det cookies?

Medlem sedan juni 2005264 inlägg
#5

Session

Medlem sedan juni 20019 519 inlägg
#6

... samma sak

if session("inloggad") = "ja" then
response.write "Du är inloggad för bövelen!"
else
response.write "Logga in då!"
end if
Medlem sedan juni 2005264 inlägg
#7
If IsEmpty(Session("AnvändarId")) Then

Public Sub NyttSvar()
	Response.Write "<table border=""0"" cellpadding=""3"" cellspacing=""3""><tr><td>"
	Response.Write "<form action=""svara.asp"" method=""Post""><h2>Svara på artikeln</h2></td></tr>"
	Response.Write "<tr><td>Namn:</td></tr><tr><td><input type=""text"" name=""Namn""></td></tr>"
	Response.Write "<tr><td>Rubrik:</td></tr><tr><td><input type=""text"" name=""Rubrik""></td></tr>"
	Response.Write "<tr><td>Svar:</td></tr><tr><td><textarea rows=""7"" cols=""30"" name=""Text""></textarea></td></tr>"
	Response.Write "<input type=""hidden"" name=""artikelId"" value=""" & Request.Form("artikelId") & """>"
	Response.Write "<tr><td>><input type=""submit"" name=""Send"" value=""Svara""></form></td></tr>"
End Sub
End If

Har jag skrivit nu, men det händer inte så mycket...
Måste man inte ha något som händer om inte if är sant? Vad ska jag skriva isf? Det ska ju inte synas något alls då

Medlem sedan juni 200032 967 inlägg
#8

Du borde inte ha subrutinen i if-satsen. Antingen lägger du ut subrutinen utanför, och i if-satsen kallar du på den:

Public Sub NyttSvar()
	Response.Write "<table border=""0"" cellpadding=""3"" cellspacing=""3""><tr><td>"
	Response.Write "<form action=""svara.asp"" method=""Post""><h2>Svara på artikeln</h2></td></tr>"
	Response.Write "<tr><td>Namn:</td></tr><tr><td><input type=""text"" name=""Namn""></td></tr>"
	Response.Write "<tr><td>Rubrik:</td></tr><tr><td><input type=""text"" name=""Rubrik""></td></tr>"
	Response.Write "<tr><td>Svar:</td></tr><tr><td><textarea rows=""7"" cols=""30"" name=""Text""></textarea></td></tr>"
	Response.Write "<input type=""hidden"" name=""artikelId"" value=""" & Request.Form("artikelId") & """>"
	Response.Write "<tr><td>><input type=""submit"" name=""Send"" value=""Svara""></form></td></tr>"
End Sub

If IsEmpty(Session("AnvändarId")) Then
        call NyttSvar()
End If

Eller så skriver du bara ut direkt i if-satsen:

If IsEmpty(Session("AnvändarId")) Then
	Response.Write "<table border=""0"" cellpadding=""3"" cellspacing=""3""><tr><td>"
	Response.Write "<form action=""svara.asp"" method=""Post""><h2>Svara på artikeln</h2></td></tr>"
	Response.Write "<tr><td>Namn:</td></tr><tr><td><input type=""text"" name=""Namn""></td></tr>"
	Response.Write "<tr><td>Rubrik:</td></tr><tr><td><input type=""text"" name=""Rubrik""></td></tr>"
	Response.Write "<tr><td>Svar:</td></tr><tr><td><textarea rows=""7"" cols=""30"" name=""Text""></textarea></td></tr>"
	Response.Write "<input type=""hidden"" name=""artikelId"" value=""" & Request.Form("artikelId") & """>"
	Response.Write "<tr><td>><input type=""submit"" name=""Send"" value=""Svara""></form></td></tr>"
End If

Men, är det verkligen IsEmpty du vill ha? Om jag vore du skulle jag jämföra med tom sträng.

http://www.devguru.com/technologies/wml/vbscript/quickref/isempty.html

Medlem sedan juni 2005264 inlägg
#9

Provade båda alternativen. Gick inte så bra, inga felmeddelanden iof, men nu visas svarsforumläret hela tiden, även på förstasidan. det är ju inte riktigt meningen.

Vi har använt ifisempty i skolan, men jag fattar inte riktigt =S Hur gör man på annat sätt?

Medlem sedan jan. 20023 327 inlägg
#10

Som din kod är nu så visar du svara knappen om det inte finns någon inloggningssession, dvs knappen visas om man inte är inloggad, ska vara tvärtom.

If NOT isEmpty(session("AnvändarId")) Then
        call NyttSvar()
End If

Att svarsrutan visas även på andra sidor får du undvika genom att suben endast anropas på den sida där man ska kunna svara.

Medlem sedan juni 2005264 inlägg
#11

Ojdå :r

Nu försvann det från förstasidan, men knappen visas fortfarande när man är inne i inlägget.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)