📄 forum_post.asp
字号:
<%@ LANGUAGE = VBScript%>
<%
Response.Buffer=true
Response.Expires=0
%>
<!-- #include file="../dsn.asp" -->
<!--#include file="init.inc"-->
<%
keyno=Request.QueryString("keyno")
classcode=Request.QueryString("classcode")
flag=Request.QueryString("flag")
pageno=Request.QueryString("pageno")
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)
set rs = Server.CreateObject("ADODB.Recordset")
set rs2 = Server.CreateObject("ADODB.Recordset")
tablename="forum"
usercode=Session("usercode")
userno=Session("userno")
if keyno<>"" then
sql="select * from "+tablename+" where keyno="&keyno
rs.Open sql,cn,1,3
if not rs.EOF then
parentno=rs("parentno")
classcode=trim(rs("classcode"))
newtitle=trim(rs("title"))
newcontent=trim(rs("content"))
if Session("userno")<>rs("userno") then
Response.End
end if
end if
rs.Close
topic="编辑帖子"
else
topic="发表新话题"
end if
if classcode<>"" then
sql="select * from forum_class where state='1' and classcode='"+classcode+"'"
else
sql="select * from forum_class where state='1' order by sortnum"
end if
rs2.Open sql,cn,1,1
if not rs2.EOF then
manager=trim(rs2("manager"))
classcode=trim(rs2("classcode"))
classname=trim(rs2("classname"))
topcount=rs2("topcount")
totcount=rs2("reccount")
flag=rs2("flag")
else
Response.End
end if
rs2.Close
if keyno<>"" then
myurl="forum_post.asp?classcode="+classcode+"&keyno="&keyno
backurl="forum_display.asp?classcode="+classcode+"&keyno="&parentno
else
myurl="forum_post.asp?classcode="+classcode
backurl="forum_list.asp?classcode="+classcode
end if
select case Session("userflag")
case "1"
userqx=mid(flag,2,1)
case "2"
userqx=mid(flag,3,1)
case else
userqx=mid(flag,1,1)
end select
if manager<>"" then
keyword=manager+"/"
manager=""
xx1=1
xx2=instr(xx1,keyword,chr(47))
wheretxt=""
do while xx2>0
ttt=mid(keyword,xx1,xx2-xx1)
if ttt<>"" then
sql="select userno from userinfo where state='1' and usercode='"+ttt+"'"
rs2.Open sql,cn,1,1
if not rs2.EOF then
if cstr(Session("userno"))=cstr(rs2(0)) then
userqx="9"
end if
ttt="<a href='user_display.asp?userno="&rs2(0)&"' target=_blank>"+ttt+"</a>"
if manager="" then
manager=ttt
else
manager=manager+","+ttt
end if
end if
rs2.Close
end if
xx1=xx2+1
xx2=instr(xx1,keyword,"/")
loop
else
manager="暂无"
end if
if Session("userqx")="9" or Session("userflag")="9" then
userqx="9"
end if
if userqx<>"1" and userqx<>"9" then
Response.End
end if
bz=1
if Request.ServerVariables("REQUEST_METHOD")="POST" then
'ttt=Request.Form("content")
'Response.Write ttt&"<br>"
'Response.End
bz=0
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
if formsize>122880 then
bz="2"
sysmess="上传文件太大!文件限为:<font color=red>120K</font>,"+"目前为:<font color=red>"&int(formsize/1024)&"K</font> 。"
end if
hds=1
datastart=1
do while datastart<formsize and hds<=8
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(datastart+dataend,formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend - 2)
select case hds
case 1
usercode=bin2str(mydata)
case 2
userpass=lcase(bin2str(mydata))
case 3
newtitle=bin2str(mydata)
case 4
emote=bin2str(mydata)
case 5
if datastart > dataend then
picflag="0"
else
picflag="1"
end if
picdata=mydata
case 6,7
case 8
newcontent=bin2str(mydata)
end select
hds=hds+1
loop
if Session("userno")="" then
sql="select userno,userpass,flag,state,logintime,logincount,ipaddress,cookieqx from userinfo where usercode='"+usercode+"' and state='1'"
rs.Open sql,cn,1,3
if rs.EOF then
bz=2
else
oldpass=Lcase(trim(rs(1)))
if oldpass=userpass then
rs("logintime")=now()
rs("logincount")=rs("logincount")+1
rs("ipaddress")=Request.ServerVariables("Remote_HOST")
cookieqx=trim(rs("cookieqx"))
rs.Update
Response.Cookies("usercode")=usercode
Response.Cookies("userpass")=userpass
Response.Cookies("loginflag")=loginflag
select case cookieqx
case "1"
Response.Cookies("usercode").Expires=now()+1
Response.Cookies("userpass").Expires=now()+1
Response.Cookies("loginflag").Expires=now()+1
case "2"
Response.Cookies("usercode").Expires=now()+30
Response.Cookies("userpass").Expires=now()+30
Response.Cookies("loginflag").Expires=now()+30
case "3"
Response.Cookies("usercode").Expires=now()+365
Response.Cookies("userpass").Expires=now()+365
Response.Cookies("loginflag").Expires=now()+365
end select
Session("userno")=rs(0)
Session("usercode")=usercode
Session("userflag")=rs("flag")
userno=rs(0)
loginflag="1"
cn.Execute "delete from user_login where userno="&userno&" or keyno="&Session.SessionID
if databaseflag="access" then
sql="Insert into user_login values ("&Session.SessionID&","&userno&",'"+usercode+"',now(),now(),'"+classcode+"','"+loginflag+"','"+Request.ServerVariables("Remote_HOST")+"')"
else
sql="Insert into user_login values ("&Session.SessionID&","&userno&",'"+usercode+"',getdate(),getdate(),'"+classcode+"','"+loginflag+"','"+Request.ServerVariables("Remote_HOST")+"')"
end if
cn.Execute sql
else
bz=2
Session.Abandon
end if
end if
rs.Close
end if
if bz=0 then
if keyno<>"" then
sql="select * from "+tablename+" where keyno="&keyno
rs.Open sql,cn,1,3
if not rs.EOF then
rs("title")=newtitle
rs("content")=newcontent
rs("emote")=emote
rs("ipaddress")=Request.ServerVariables("Remote_HOST")
rs("updatetime")=now()
rs.Update
end if
else
sql="select top 1 * from "+tablename
rs.Open sql,cn,1,3
rs.AddNew
keyno=syskeyno(tablename,"keyno")
rs("keyno")=keyno
rs("parentno")=keyno
rs("title")=newtitle
rs("classcode")=classcode
rs("emote")=emote
rs("content")=newcontent
rs("grade")=1
rs("userno")=userno
rs("usercode")=usercode
rs("userflag")="1"
rs("clen")=len(content)
rs("picflag")=picflag
rs("querycount")=0
rs("replycount")=0
rs("flag")="0"
rs("topflag")="0"
rs("ipaddress")=Request.ServerVariables("Remote_HOST")
rs("creadate")=Now()
rs("replyno")=keyno
rs("replytime")=now()
rs("replyuser")=usercode
rs.Update
if picflag="1" then
sql="select top 1 * from picfiles"
rs2.Open sql,cn,1,3
rs2.AddNew
rs2("keyno")=keyno
rs2("code")=tablename
rs2("tablename")=tablename
rs2("picfile").appendchunk picdata
rs2.Update
rs2.Close
end if
rs.Close
sql="update userinfo set talkcount=talkcount+1,amount=amount+3 where userno="&userno
cn.Execute sql
sql="update forum_class set topcount=topcount+1,reccount=reccount+1 where classcode='"+classcode+"'"
cn.Execute sql
end if
Response.Redirect(backurl)
end if
end if
Function bin2str(binstr)
Dim varlen,clow,ccc,skipflag
'中文字符Skip标志
skipflag=0
ccc = ""
varlen=LenB(binstr)
For i=1 To varlen
If skipflag=0 Then
clow = MidB(binstr,i,1)
'判断是否中文的字符
If AscB(clow) > 127 Then
'AscW会把二进制的中文字符高位和低位反转,所以要先把中文的高低位先反转
ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))
skipflag=1
Else
ccc = ccc & Chr(AscB(clow))
End If
Else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -