|
|
 |
Snackbaren
- Vårvindens gästbok
<%
' Funktion för att kolla att inlägget inte innehåller förbjudna ord
' Inspirerad av: http://www.virtualsplat.com/tips/asp-function-instr.asp
Function BannedWords
dim txt, ord1, ord2, godkand
'txt=Request.Form("inlagg")
ord1=InStr(inlagg,"http")
ord2=InStr(epost,"yahoo")
'response.write(pos)
If ord1 > 0 Or ord2 > 0 Then
BannedWords = "ejok"
Else
BannedWords = "ok"
End If
End Function
' Funktion för att kolla att inlägget inte kommer från annan server
' Hämtat från aspsidan.se
Function CheckServ
strThisAddr = "http://www.varvinden.com"
strREF = Request.Servervariables("HTTP_REFERER")
strREF = Left(strREF,Len(strThisAddr))
If inStr(strREF,strThisAddr) <> 0 then
If Right(strThisAddr,1) = Right(strREF,1) then
CheckServ = "safe"
Else
CheckServ = "false"
End If
Else
CheckServ = "false"
End If
End Function
' Börjar med att läsa innehållet i textfilen snackbaren
Dim antal
antal = 1
Set bs=Server.CreateObject("Scripting.FileSystemObject")
Set b=bs.OpenTextFile(Server.MapPath("gastbok/snackbaren.txt"), 1)
' Skriver inläggen från snackbaren.txt till en kopia av filen
Dim x, aname
set x=Server.CreateObject("Scripting.FileSystemObject")
set aname=x.CreateTextFile(Server.MapPath("gastbok/kopia_snackbaren.txt"))
do while b.AtEndOfStream = false
aname.WriteLine(b.Readline)
loop
b.Close
Set b=Nothing
Set bs=Nothing
aname.Close
set aname=nothing
set x=nothing
dim namn, epost, inlagg
namn=Request.Form("namn")
epost=Request.Form("epost")
inlagg=Request.Form("inlagg")
'Tar bort eventuella html-taggar från textsträngarna
namn=Server.HTMLEncode(namn)
epost=Server.HTMLEncode(epost)
inlagg=Server.HTMLEncode(inlagg)
'Gör så att radbrytningarna behålls, men att inlägget trots de
'hamnar på en rad i textfilen
namn = Replace(Trim(namn),vbCrLf, " ")
epost = Replace(Trim(epost),vbCrLf, " ")
inlagg = Replace(Trim(inlagg),vbCrLf, " ")
session.lcid = 1053
dim datum
datum = day(date()) & " " & MonthName(month(date())) &" "& year(date())
' Ropar på funktionen som kollar så att inlägget inte kommer från annan server
If CheckServ() = "safe" then
'response.write (BannedWords())
If BannedWords() = "ejok" then
'Skickar e-post till mig
set msg = Server.CreateObject("JMail.Message")
msg.Logging = true
msg.From = "roger.fogelstrand@varvinden.com"
msg.FromName = "Vårvindens hemsida"
msg.AddRecipient "roger.fogelstrand@varvinden.com"
msg.Subject = "Underkänt inlägg i Snackbaren"
msg.Body = namn & ", " & epost & ", skrev " & datum & ":" & vbCrLf & inlagg
msg.Send("pop3.sajthotellet.com")
Response.Write("Ditt inlägg kommer att förhandsgranskas innan det läggs ut. Detta eftersom Snackbaren tidigare har missbrukats.
")
End If
If inlagg<>"" And BannedWords() = "ok" Then
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile(Server.MapPath("gastbok/snackbaren.txt"))
If namn="Ditt namn" Then
namn="Någon"
end if
If epost<>"Eventuell e-postadress" Then
namn="" & namn & ""
end if
Dim y, yname
Set y=Server.CreateObject("Scripting.FileSystemObject")
Set yname=y.OpenTextFile(Server.MapPath("gastbok/kopia_snackbaren.txt"), 1)
fname.WriteLine(namn & " skrev " & datum & ":
" & inlagg & " ")
do while yname.AtEndOfStream = false
fname.WriteLine(yname.Readline)
antal = antal + 1
loop
fname.Close
set fname=nothing
set fs=nothing
yname.Close
set yname=nothing
set y=nothing
'Skickar e-post till mig
set msg = Server.CreateObject("JMail.Message")
msg.Logging = true
msg.From = "roger.fogelstrand@varvinden.com"
msg.FromName = "Vårvindens hemsida"
msg.AddRecipient "roger.fogelstrand@varvinden.com"
msg.Subject = "Nytt inlägg i Snackbaren"
msg.Body = namn & " skrev " & datum & ":" & vbCrLf & inlagg
msg.Send("pop3.sajthotellet.com")
end if
' Slut "Ifall besökaren skrivit något i textrutan"
Else
'skriver ut något i stil med:
Response.Write("Inlägget postat från annan server. Ej tillåtet!" & "
")
' Skriver hackerförsöket till loggfil
Dim r, rname
set r=Server.CreateObject("Scripting.FileSystemObject")
set rname=r.CreateTextFile(Server.MapPath("gastbok/annanserver.txt"))
rname.WriteLine(namn & " skrev " & datum & ":
" & inlagg)
rname.Close
set rname=nothing
set r=nothing
End If
'Slut "Ifall inlägget är postat från annan server"
Dim raknare, rad, antalinlagg, sida, valdsida, sidnr, intTotalt, intStart
Dim intSluta
raknare = 0
sida = 1
intStart = 1 ' Anger på vilken rad i textfilen programmet ska läsa
sidnr = CInt(Request.QueryString("sidnr"))
' Endast om sidnumret är 2 eller högre ska intStart räknas upp
For i=2 to sidnr
intStart = intStart + 10
Next
intSluta = intStart + 9
' Skriver ut inläggen till skärmen
Set rs=Server.CreateObject("Scripting.FileSystemObject")
Set r=rs.OpenTextFile(Server.MapPath("gastbok/snackbaren.txt"), 1)
' Gör detta så länge det finns något i filen att läsa
do while r.AtEndOfStream = false
rad = r.Readline
'Response.Write(raknare & r.Readline)
If r.Line > intStart And raknare < intSluta Then
Response.Write(rad)
'Response.Write(raknare & rad) Skriver ut radens nummer före inlägget
End if
If antalinlagg > 9 Then
sida = sida + 1
antalinlagg = 0
End if
raknare = raknare + 1
antalinlagg = antalinlagg + 1
loop
intTotalt = r.Line - 1 'r.Line börjar räkna på 0
response.write("Totalt antal inlägg: " & intTotalt)
r.Close
Set r=Nothing
Set rs=Nothing
response.write("
Gå till sida --> ")
Dim sidor
Dim intStarta
intStarta = 1
sidor = 1
For i=1 to sida
If i=sidnr Then
response.write(" " & sidor & " ")
else
response.write("" & sidor & " ")
end If
sidor = sidor + 1
intStarta = intStarta + 10
Next
%>
|
  |
|