📄 card.asp
字号:
<% Option Explicit %>
<!--#include file="../../FS_Inc/Const.asp" -->
<!--#include file="../../FS_InterFace/MF_Function.asp" -->
<!--#include file="../../FS_Inc/Function.asp" -->
<!--#include file="../../FS_Inc/Func_page.asp" -->
<%'Copyright (c) 2006 Foosun Inc. Code by awen ueuo.cn网络收藏夹
Dim Conn,User_Conn,VClass_Rs,VClass_Sql,sErrStr
Dim CheckStr,Need_Do_Pwd_Str
MF_Default_Conn
MF_User_Conn
MF_Session_TF
if not MF_Check_Pop_TF("ME_Card") then Err_Show
Dim int_RPP,int_Start,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo
int_RPP=15 '设置每页显示数目
int_showNumberLink_=10 '数字导航显示数目
showMorePageGo_Type_ = 1 '是下拉菜单还是输入值跳转,当多次调用时只能选1
str_nonLinkColor_="#999999" '非热链接颜色
toF_="<font face=webdings>9</font>" '首页
toP10_=" <font face=webdings>7</font>" '上十
toP1_=" <font face=webdings>3</font>" '上一
toN1_=" <font face=webdings>4</font>" '下一
toN10_=" <font face=webdings>8</font>" '下十
toL_="<font face=webdings>:</font>" '尾页
Function Get_Card(Add_Sql,orderby)
Dim Get_Html,This_Fun_Sql,ii,Str_Tmp,Arr_Tmp,New_Search_Str,Req_Str,regxp
Str_Tmp = "CardID,CardNumber,CardMoney,CardDateNumber,CardPoint,isBuy,CardOverDueTime,UserNumber,UserTime ,AddTime,IsUse,CardPasswords"
This_Fun_Sql = "select "&Str_Tmp&" from FS_ME_Card"
if request.QueryString("Act")="SearchGo" then
Arr_Tmp = split(Str_Tmp,",")
for each Str_Tmp in Arr_Tmp
Req_Str = NoSqlHack(Trim(request(Str_Tmp)))
if Req_Str<>"" then
select case Str_Tmp
case "CardMoney","CardDateNumber","CardPoint","IsUse","isBuy" ,"CardOverDueTime","UserTime","AddTime"
''数字,日期
regxp = "|<|>|=|<=|>=|<>|"
if instr(regxp,"|"&left(Req_Str,1)&"|")>0 or instr(regxp,"|"&left(Req_Str,2)&"|")>0 then
New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" "& Req_Str
elseif instr(Req_Str,"*")>0 then
if left(Req_Str,1)="*" then Req_Str = "%"&mid(Req_Str,2)
if right(Req_Str,1)="*" then Req_Str = mid(Req_Str,1,len(Req_Str) - 1) & "%"
New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" like '"& Req_Str &"'"
else
New_Search_Str = and_where( New_Search_Str ) & Str_Tmp &" = "& Req_Str
end if
case else
''字符
New_Search_Str = and_where(New_Search_Str) & Search_TextArr(Req_Str,Str_Tmp,"")
end select
end if
next
if New_Search_Str<>"" then This_Fun_Sql = and_where(This_Fun_Sql) & replace(New_Search_Str," where ","")
end if
Str_Tmp = "":ii=0
if Add_Sql<>"" then This_Fun_Sql = and_where(This_Fun_Sql) &" "& Decrypt(Add_Sql)
if orderby<>"" then This_Fun_Sql = This_Fun_Sql &" Order By "& replace(orderby,"csed"," Desc")
On Error Resume Next
Set VClass_Rs = CreateObject(G_FS_RS)
VClass_Rs.Open This_Fun_Sql,User_Conn,1,1
if Err<>0 then
Err.Clear
response.Redirect("../error.asp?ErrCodes=<li>查询出错:"&Err.Description&"</li><li>请检查字段类型是否匹配.</li>")
response.End()
end if
IF VClass_Rs.eof THEN
response.Write("<tr class=""hback""><td colspan=15>暂无数据.</td></tr>")
else
VClass_Rs.PageSize=int_RPP
cPageNo=NoSqlHack(Request.QueryString("Page"))
If cPageNo="" Then cPageNo = 1
If not isnumeric(cPageNo) Then cPageNo = 1
cPageNo = Clng(cPageNo)
If cPageNo<=0 Then cPageNo=1
If cPageNo>VClass_Rs.PageCount Then cPageNo=VClass_Rs.PageCount
VClass_Rs.AbsolutePage=cPageNo
FOR int_Start=1 TO int_RPP
Get_Html = Get_Html & "<tr class=""hback"">" & vbcrlf
Get_Html = Get_Html & "<td align=""center""><a href=""Card.asp?Act=Edit&CardID="&VClass_Rs("CardID")&""" class=""otherset"" title='点击修改'>"&VClass_Rs("CardNumber")&"</a></td>" & vbcrlf
for ii=2 to 8
select case ii
case 2
Str_Tmp = VClass_Rs(ii) & "元"
case 5
if VClass_Rs(ii)=1 then
Str_Tmp="已售出"
else
Str_Tmp="未售出"
end if
case else
Str_Tmp = VClass_Rs(ii)
end select
Get_Html = Get_Html & "<td align=""center"">"& Str_Tmp & "</td>" & vbcrlf
next
Get_Html = Get_Html & "<td align=""center"" class=""ischeck""><input type=""checkbox"" "&CheckStr&" name=""DelID"" id=""DelID"" value="""&VClass_Rs("CardID")&""" /></td>" & vbcrlf
Get_Html = Get_Html & "</tr>" & vbcrlf
CheckStr = ""
VClass_Rs.MoveNext
if VClass_Rs.eof or VClass_Rs.bof then exit for
NEXT
END IF
Get_Html = Get_Html & "<tr class=""hback""><td colspan=20 align=""center"" class=""ischeck"">"& vbcrlf &"<table width=""100%"" border=0><tr><td height=30>" & vbcrlf
Get_Html = Get_Html & fPageCount(VClass_Rs,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo) & vbcrlf
Get_Html = Get_Html & "</td><td align=right><input type=""submit"" name=""submit"" value="" 删除 "" onclick=""javascript:return confirm('确定要删除所选项目吗?');""></td>"
Get_Html = Get_Html &"</tr></table>"&vbNewLine&"</td></tr>"
VClass_Rs.close
Get_Card = Get_Html
End Function
Sub Del()
if not MF_Check_Pop_TF("ME019") then Err_Show '权限判断
Dim Str_Tmp
if request.QueryString("CardID")<>"" then
User_Conn.execute("Delete from FS_ME_Card where CardID = "&request.QueryString("CardID"))
else
Str_Tmp = request.form("DelID")
if Str_Tmp="" then response.Redirect("../error.asp?ErrCodes=<li>你必须至少选择一个进行删除。</li>")
Str_Tmp = replace(Str_Tmp," ","")
User_Conn.execute("Delete from FS_ME_Card where CardID in ("&Str_Tmp&")")
end if
response.Redirect("../Success.asp?ErrorUrl="&server.URLEncode( "User/Card.asp?Act=View" )&"&ErrCodes=<li>恭喜,删除成功。</li>")
End Sub
''================================================================
Function CheckCardCF(CardNumber)
''检查录入的卡是否重复,重复则返回卡号,不重复则返回""
Dim CheckCardCF_Rs
Set CheckCardCF_Rs = CreateObject(G_FS_RS)
CheckCardCF_Rs.Open "select Count(*) from FS_ME_Card where CardNumber='"&CardNumber&"'",User_Conn,1,1
if CheckCardCF_Rs(0)>0 then
CheckCardCF = CardNumber
else
CheckCardCF = ""
end if
CheckCardCF_Rs.close
End Function
Sub Save()
Dim CardID,IsOk,Arr_Tmp,Str_Tmp,Arr_Tmp1,Str_Tmp1,Arr_Tmp2,Str_Tmp2,ErrInfo,tmpi
Dim PutNum,CardAddStr,CardNum_Len,CardPwd_Len,Put_i,Put_Rs,Str_Tmp3,Put_Pwd_Type
Dim Randchar,Randchararr,iR
CardID = NoSqlHack(request.Form("CardID"))
if not isnumeric(CardID) or CardID = "" then CardID = 0
Str_Tmp = "CardNumber,CardPasswords,CardMoney,CardDateNumber,CardPoint,CardOverDueTime,IsUse,isBuy,UserNumber,AddTime,UserTime"
Arr_Tmp = split(Str_Tmp,",")
for tmpi = 2 to 7
if trim(request.Form("frm_"&Arr_Tmp(tmpi))) = "" then sErrStr = Arr_Tmp(tmpi) : exit for
next
if sErrStr <>"" then response.Redirect("../error.asp?ErrCodes=<li>必要的参数 ["&sErrStr&"] 必须填写完整!!</li>") : response.End()
VClass_Sql = "select "&Str_Tmp&" from FS_ME_Card where CardID="&CardID
Set VClass_Rs = CreateObject(G_FS_RS)
VClass_Rs.Open VClass_Sql,User_Conn,3,3
if CardID >0 then
''修改
if not MF_Check_Pop_TF("ME018") then Err_Show '权限判断
for each Str_Tmp in Arr_Tmp
if Str_Tmp = "CardPasswords" then
VClass_Rs(Str_Tmp) = Encrypt(NoSqlHack(request.Form("frm_"&Str_Tmp))) ''加密
else
if request.Form("frm_"&Str_Tmp)<>"" then
VClass_Rs(Str_Tmp) = NoSqlHack(request.Form("frm_"&Str_Tmp))
else
VClass_Rs(Str_Tmp) = null
end if
end if
next
VClass_Rs.update
VClass_Rs.close
response.Redirect("../Success.asp?ErrorUrl="&server.URLEncode( "User/Card.asp?Act=Edit&CardID="&CardID )&"&ErrCodes=<li>恭喜,修改成功。</li>")
else
''新增
if not MF_Check_Pop_TF("ME017") then Err_Show '权限判断
if request.Form("ActPut")=1 then
''批量生成
Put_Pwd_Type = request.Form("Put_Pwd_Type")
Put_Pwd_Type = replace(Put_Pwd_Type," ","")
''卡的密码构成方式。数字,字母
PutNum=Trim(request.Form("Put_PutNum"))
if not isnumeric(PutNum) then PutNum = 1
CardAddStr=NoSqlHack(Trim(request.Form("Put_CardAddStr")))
CardNum_Len=Trim(request.Form("Put_CardNum_Len"))
if not isnumeric(CardNum_Len) then CardNum_Len = 12
CardPwd_Len=Trim(request.Form("Put_CardPwd_Len"))
if not isnumeric(CardPwd_Len) then CardPwd_Len = 8
''如果前缀长度比冲值卡长度-2还大,则冲值卡长度=冲值卡长度+前缀长度+2
if len(CardAddStr) > CardNum_Len-2 then CardNum_Len = len(CardAddStr) + CardNum_Len + 2
On Error Resume Next
if User_Conn.execute("select Count(*) from FS_ME_CardPut")(0)=0 then
User_Conn.execute("insert into FS_ME_CardPut (PutNum,CardAddStr,CardNum_Len,CardPwd_Len) VALUES ("&PutNum&",'"&CardAddStr&"',"&CardNum_Len&","&CardPwd_Len&")")
else
User_Conn.execute("update FS_ME_CardPut set PutNum="&PutNum&",CardAddStr='"&CardAddStr&"',CardNum_Len="&CardNum_Len&",CardPwd_Len="&CardPwd_Len&"")
end if
If Err.Number<>0 Then Err.Clear : response.Redirect("../Error.asp?ErrCodes=<li>批量生成卡基础设置存盘失败.请检查拼写是否正确.</li>") : response.End()
Str_Tmp = "CardMoney,CardDateNumber,CardPoint,CardOverDueTime,IsUse,UserNumber,AddTime,isBuy"
Arr_Tmp = split(Str_Tmp,",")
for Put_i = 1 to PutNum
Str_Tmp1 = "" : Str_Tmp2 = "" : Str_Tmp3 = ""
''生成卡号,密码并入库
''''''''''''''添加到FS_ME_CardPut表
Str_Tmp2=Str_Tmp2&GetRamCode(CardPwd_Len)
'response.Write("密码"&Put_i&"次:"&Str_Tmp2&"<br>")
''''''''''''''''''''''''''''''''''
''卡号加密,取消06-07-05
''第一次
Str_Tmp1 = Str_Tmp1 &GetRamCode( CardNum_Len - len(CardAddStr) )
'''''''''''''''''''''''生成后再检查数据库,若存在则再生成一次
do while CheckCardCF(CardAddStr & Str_Tmp1)<>""
Str_Tmp1 = GetRamCode( CardNum_Len - len(CardAddStr) )
loop
'response.Write("卡号"&Put_i&"次:"&Str_Tmp1&"<br>")
'''''''''''''''''''''''
On Error Resume Next
VClass_Rs.AddNew
''''''''''''''添加到FS_ME_Card表
Str_Tmp3 = ""
VClass_Rs("CardNumber") = CardAddStr & Str_Tmp1
VClass_Rs("CardPasswords") = Encrypt(Str_Tmp2)
for each Str_Tmp3 in Arr_Tmp
if request.Form("frm_"&Str_Tmp3)<>"" then
VClass_Rs(Str_Tmp3) = NoSqlHack(request.Form("frm_"&Str_Tmp3))
else
VClass_Rs(Str_Tmp3) = null
end if
'response.Write(Str_Tmp3&":"&NoSqlHack(request.Form("frm_"&Str_Tmp3))&"<br>")
next
VClass_Rs.update
'If Err.Number<>0 Then Err.Clear : response.Redirect("../Error.asp?ErrCodes=<li>卡数据存盘失败.请检查拼写是否正确.</li>") : response.End()
'response.Write("Str_Tmp1:"&Str_Tmp1&" "&"Str_Tmp2:"&Str_Tmp2&" "&"Str_Tmp3:"&Str_Tmp3&"<br>")
next
VClass_Rs.close
'response.End()
response.Redirect("../Success.asp?ErrorUrl="&server.URLEncode( "User/Card.asp" )&"&ErrCodes=<li>恭喜,批量生成成功。</li>")
else
'''''''''''''''''''''
if request.Form("AddMode")=1 then
''单张
if CheckCardCF(NoSqlHack(request.Form("frm_CardNumber")))<>"" then
response.Redirect("../error.asp?ErrorUrl=&ErrCodes=<li>卡号:"&request.Form("frm_CardNumber")&"已存在。</li>")
response.End()
end if
VClass_Rs.AddNew
for each Str_Tmp in Arr_Tmp
if Str_Tmp = "CardPasswords" then
VClass_Rs(Str_Tmp) = Encrypt(NoSqlHack(request.Form("frm_"&Str_Tmp))) ''加密
else
if request.Form("frm_"&Str_Tmp)<>"" then
VClass_Rs(Str_Tmp) = NoSqlHack(request.Form("frm_"&Str_Tmp))
else
VClass_Rs(Str_Tmp) = null
end if
end if
'response.Write(NoSqlHack(request.Form("frm_"&Str_Tmp))&":"&Str_Tmp&"<br>")
next
VClass_Rs.update
Put_i=1
else
''批量添加多张
Str_Tmp1 = Trim(request.form("More_Mode_Area"))
if Str_Tmp1="" or instr(Str_Tmp1,"|")=0 or len(Str_Tmp1)<3 then
response.Redirect("../Error.asp?ErrCodes=批量添加时,卡号和密码不能为空或格式不正确或长度不够。") : response.End()
else
ErrInfo = "" : Put_i=0 : iR=0 : Str_Tmp2 = ""
Str_Tmp = "CardMoney,CardDateNumber,CardPoint,CardOverDueTime,IsUse,UserNumber,AddTime,isBuy"
Arr_Tmp = split(Str_Tmp,",")
if instr(Str_Tmp1," ") then Str_Tmp1 = left(Str_Tmp1,len(Str_Tmp1) - len(" "))
Str_Tmp1 = replace(replace(Str_Tmp1," ",vbcr)," ","")
Arr_Tmp1 = split(Str_Tmp1,vbcr) ''每一行数据
ErrInfo = ErrInfo & "<li>你提交了: "&ubound(Arr_Tmp1)+1&" 张卡.</li>"
'''''''''''''''''''''判断后再造字符串
for iR = lbound(Arr_Tmp1) to ubound(Arr_Tmp1)
Arr_Tmp2=split(Arr_Tmp1(iR),"|") ''拆分卡号和密码
if ubound(Arr_Tmp2)<>1 then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -