您所在的位置:小祥子 » CMS学院 » 新云 » 正文

新云CMS4.0 每日签到插件制作思路与方法

时间:2015-01-08 编辑:本站 来源:互联网

开发必备:会点ASP,会点SQL语句

原理:

1、用户可以每日签到一次,获得1-10的随机货币。

2、将用户签到记录保存到一个新建的表里,管理员后台可以看到签到情况(也是为了安全,防止恶意操作导致货币不正常)

3、用户也可以看到自己的签到记录。

首先,在数据库里新建一个表NC_AddPoint用于存储签到的相关信息;

建一个ASP页面,判断当前用户今天是否有签到记录。

核心SQL代码

SQL = "SELECT * FROM NC_AddPoint WHERE userid=" & memberid & " And username='" & MemberName & "' And addtime like '"&formatdatetime(now(),2)&"'"

没有,那么可以签到,如果签到了可以显示已签到的按钮或者点击按钮到提示已签到。

签到的表有几个,可以选择心情,并且留下一段文字作为记录,后台过滤掉文字里的html代码

签到后更新用户的点数信息,随机增加1-10(固定也可以),随机函数代码

function rndarray(istart,iend,sum)
'istart和iend是数的开始和结束 sum是你要输出数的个数
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(sum-1)
i=0
iloop=0
eloop=0
blnre=false
randomize
do while i<sum
temp=int(rnd*(iend-istart+1)+istart)
if i=0 then
arrayid(0)=temp
i=i+1
iloop=iloop+1
else

for j=0 to i-1
if arrayid(j)=temp then
blnre=true
iloop=iloop+1
exit for'这一句很重要,防止多余的循环
else
iloop=iloop+1
end if
next

if blnre=false then
arrayid(i)=temp
i=i+1
else
blnre=false
end if

end if
eloop=eloop+iloop
iloop=0
loop
rndarray=join(arrayid)
end function

并且将签到的记录保存到表里。核心代码

Rs.AddNew
Rs("userid").Value = NewAsp.memberid
Rs("username").Value = NewAsp.membername
Rs("title").Value = NewAsp.RequestForm(Request.Form("todaysay"),50)
Rs("OrderForm").Value = OrderForm
Rs("addmoney").Value = abcds
Rs("addtime").Value = formatdatetime(now(),2)
Rs("readme").Value = NewAsp.RequestForm(Request.Form("readme"),255)
Rs("paytype").Value = strpaytype
Rs("finished").Value = 0
Rs("deletion").Value = 0
Rs("Loginip").Value = Request.ServerVariables("REMOTE_ADDR")
Rs.Update
Set Rs = NewAsp.Execute("SELECT * FROM NC_AddMoney WHERE finished=0 And id="& CLng(Request("id")))
NewAsp.Execute ("UPDATE NC_User SET userpoint=userpoint+"&CCur(Request.Form("addmoney")) &" WHERE username='"& NewAsp.membername &"' And userid="& NewAsp.memberid)
NewAsp.Execute ("UPDATE NC_AddMoney SET finished=1 WHERE id="& CLng(Request("id")))

最后我完成了这个每日签到插件的制作,但是我后来又觉得没必要用在我的站上。

本类热门