请先登录 | 注册
MYCSG.CN
[求助]求助 - 文章首页返回版区
■标题:[求助]求助
■作者:山清水秀 [2007/1/19 11:56:23]
求助:我在改动一个插件时,想让一个表单内的数值只能以某个固定数值的倍数提交,该如何写呢?比如表单内只能填入10、或10的倍数:20、30、40。。。,?谢谢!

回复/版区/上篇/下篇/发贴/仅文字/HTML
【倒序/最近21条回复】
■作者:山清水秀 [2007/1/25 22:16:41]
说得有理,撇开黑客攻击不说,输入错误而没有网站设定的提示,就是不完整的.

■作者:IPSC [2007/1/22 13:40:09]
应该先用IF Isnumeric()进行判断,再INT即可,具体用法参考ASP研究版的ASP语法贴。

■作者:IPSC [2007/1/22 13:38:41]
qmoney=int(Request("qmoney"))
这样的用法不安全,很多地方都是用INT来判断,如果用户提交的不是INT,就出错了,出错意味着出错之前的系统变量会被盜,如后台登录密码,用户登录密码等,黑客可以进行破解,然后进你后台逗你玩。

■作者:山清水秀 [2007/1/20 21:55:22]

我要好好看看才能知道它们怎么用......谢谢!

这一段是这样的:<%
rs.close
htmlend

sub save
qmoney=int(Request("qmoney"))
if qmoney > rs("money") then error("<li>您的现金没有这么多吧!")
if qmoney<10 then error("<li>不能小于10!")

rs("caiyun")=rs("caiyun")+(qmoney/10)
rs("money")=rs("money")-qmoney
..........%>

"qmoney"好像是要填入数值表单的名称,其他的大概就是数据表中的要加入数值的字段了,红色的" /10"是我加上的,是希望表单中的值/10,得到一个整数加到字段"caiyun"里,如果不是10的倍数,输入的值就会除后取整,那么10和13、15和19 得到的结果就是一样的......研究一下站长教的方法,我对于那些代码是睁眼瞎,要费些时间来琢磨,谢谢侠义的IPSC站长!



■作者:IPSC [2007/1/20 18:35:01]

只要用一个数组来判断就可以了,也方便你加上更多参考数字,加一个变量OrderList,用来放这些数字,具体看程序

OrderList="8|24|50" '参考值,用户输入的值必须这些值某一个的倍数,多个用 |  分隔

if instr(OrderList,"|")>0 then'有多个参考数字
OrderNum=split(OrderList,"|") '设为数组
Numcheck=Ubound(OrderNum)
for i=0 to Ubound(OrderNum)
if Mod(qmoney,OrderNum(i))>0 then Numcheck=Numcheck-1
next
if Numcheck=-1 then error("<li>您只能输入"&replace(OrderList,"|","、")&"或者它们的倍数!")
else'下面是只有一个数字的情况
if Mod(qmoney,OrderList)>0 then error("<li>您只能输入"&OrderList&"或者"&OrderList&"的倍数!")
end if



■作者:山清水秀 [2007/1/20 11:46:05]

谢谢站长!

如果指定的值是8,我希望用户输入的值只能是:8、16、24、32、40。。。

OrderNum=8
if Mod(qmoney,OrderNum)>0 then error("<li>您只能输入"&qmoney&"或者"&qmoney&"的倍数!")

——上面的设定中可以包含“24、50。。。”吗?

再次感谢站长!

 

 



■作者:IPSC [2007/1/20 9:31:06]

根据我的理解,你那某一固定值是指定的,如8,用户提交的值应该是8、16、32.......qmoney是提交来的数据,前面应该有qmoney=Request....之类的赋值,我就从略了。


OrderNum=8
if Mod(qmoney,OrderNum)>0 then error("<li>您只能输入"&qmoney&"或者"&qmoney&"的倍数!")



■作者:山清水秀 [2007/1/20 2:18:48]
等了一天也没见一个人来...........................................

■作者:山清水秀 [2007/1/19 13:11:19]

代码是这样的:

if qmoney<10 then error("<li>不能为小于10!")

rs("abc")=rs("abc")+(qmoney/10)

[此帖子已被 山清水秀 在 2007-1-19 13:12:34 编辑过]

(查看完整版网页)



短讯|首页|登录|算法|电脑版 .
DK MiniBBS Plus v2.0
mm0759.com
531 毫秒 .