援助社区好友 互济堂中解囊

技术与开发

我们可以在QQ中给好友赠送物品,在社区中也可以给好友捐“钱”。最近在某个社区里面,小编为了支持好友对一件不平事的义举,慷慨地将自己所有的虚拟币通过社区的“互济堂”功能捐给了他。后来事情得到圆满解决,小编非常开心,“互济堂”真的是社区不可或缺的功能!大家想知道该功能是怎么设计出来的吗?

41-f13-1-1.jpg

制作一个“互济堂”插件(插件下载地址:http://www.shudoo.com/bzsoft),让我们把互帮互助的美德在社区中发扬吧。要制作该插件,首先需要设计一个资助信息录入框,当资助人通过录入框录入相关信息后,进行验证,验证后将资助的金额打入被资助者账户,最后通过社区短信通知被资助者,这样我们便完成了“互济堂”的制作。根据相似原理,我们还可以制作虚拟物品赠予等社区插件。

第一步 制作资助信息录入页面

我们先要制作资助信息录入页面,它包含被资助者的用户名录入框和资助金额的录入框,当用户访问这个页面的时候,我们必须验证访问该页面的用户是否为社区用户,当发现用户不是社区用户的时候,提示他登录或者注册后才能进行资助。而通过验证的用户便可以进行资助信息录入了。新建一个ASP页面,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

call nav()'头部函数

stats="互济堂"

call head_var(2,0,"","")

if Cint(GroupSetting(14))=0 then

Errmsg=Errmsg+"〈br〉"+"〈li〉您没有使用本社区互济堂的权限,请〈a href=login.asp〉登录〈/a〉或者同管理员联系。"

call dvbbs_error()

else

response.write "〈table cellpadding=3 cellspacing=1 align=center class=tableborder1>〈tr〉〈th valign=middle colspan=2 align=center height=25〉〈b〉互 济 堂〈/b〉〈/td〉〈/tr〉〈tr>〈td valign=middle class=tablebody1 height=100>〈CENTER〉"

dim qian,ren

qian=request("qian")

ren=replace(trim(request("ren")),"'","")

if qian〈〉"" or ren〈〉"" then

zz

err()

else

Errmsg="〈br〉"&membername&" 你好!你有现金 "&mymoney&" 元。在这里你可以在金钱上帮助你的朋友。请输入!"

第二步 验证资助信息

当资助者输入被资助者信息和要资助的金额后,我们必须验证这些信息是否正确无误。首先验证的是被资助者是否存在以及资助者与被资助者是否为同一人,然后验证资助的金额是否正确。

为了避免社区用户恶意刷钱,我们必须严格验证资助的金额是否正确,正确的金额应该是大于零而小于或等于资助者现有的金额的。紧接上一步,输入相关代码实现该功能,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

Errmsg=Errmsg&"〈br〉请正确输入赠送金额!"

founderr=false

qian=0

elseif qian〈1 then

Errmsg=Errmsg&"〈br〉你想抢钱!"

founderr=false

else

dim qq

qq=mymoney-qian

if qq〈1 then

Errmsg=Errmsg&"〈br〉你的钱不够!"

founderr=false

elseif ren="" then

Errmsg=Errmsg&"〈br〉请正确输入你要赠给的朋友!"

founderr=false

else

sql="select username from [user] where username='"&ren&"'"

set rs=conn.execute(sql)

if rs.eof and rs.bof then

founderr=false

Errmsg=Errmsg&"〈br〉对不起,无 ["&ren&"] 此人!"

ren=""

End if

rs.close

Set rs = Nothing

if ren=membername then

Errmsg=Errmsg&"〈br〉你不能赠给自己!"

第三步 社区短信通知被资助者

确定资助信息正确后,我们便可以对这些信息进行处理了。将资助的金额从资助者所拥有的金钱中扣除,然后再将这些钱加入到被资助者的金额中。

这里需要注意的是,为了防止数据库出错导致资助者划拨的金额没有加到被资助者的账户中,我们可以在这里设置一个数据库回滚点,它保证数据库在执行完扣除和加入金钱这两条SQL语句后才最终将金钱更新到数据库。

最后我们将获得资助的信息通过社区短信发送给被资助者,我们便完成了插件的制作。紧接上一步,输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

dim title,body

title="天上掉馅饼啦!"

body=membername&"在互济堂送"&qian&"元给你,请注意查收!"

conn.Execute("insert into message(incept,sender,title,content,sendtime,flag,issend) values('"&ren&"','"&membername&"','"&title&"','"&body&"',Now(),0,1)")

Errmsg="〈br〉你已成功地赠 "&qian&" 元给 "&ren&" !你还有 "&qq&" 元!"

编后

“互济堂”不仅增强了社区的互动性,还能加强好友的交流,促进社区货币流通,是一款非常实用的插件,大家还可以在此基础上制作一个社区虚拟物品交换插件来丰富社区的功能。