<%
Dim CartStr
'购物车相关函数
'HJ 2007年1月23号
'购物车数据定义: 商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸
Sub CartAdd(ProductID,Num,ColorID,SizeID)
'添加某种商品
CartStr = Trim(Request.Cookies("SpiderCart"))
if CartStr = "" Then
Response.Cookies("SpiderCart") = ProductID & "|" & Num & "#" & ColorID & "*" &SizeID
Exit Sub
end if
CartStr = CartStr & "," & ProductID & "|" & Num & "#" & ColorID & "*" &SizeID
Response.Cookies("SpiderCart") = CartStr
End Sub
Sub CartEdit(ProductID,Num)
'编辑某种商品的数量
CartStr = ","&Trim(Request.Cookies("SpiderCart"))
if(InStr(CartStr,","&ProductID&"|") = 0) Then
Alert("该商品刚刚卖完")
CartDel(ProductID)
Exit Sub
end if
Arr = Split(CartStr,","&ProductID&"|")
CartStr = Arr(0) &"," &ProductID& "|" & Num & "#" & Right(Arr(1),Len(Arr(1)) - InStr(Arr(1),"#"))
CartStr = Right(CartStr,Len(CartStr)-1)
Response.Cookies("SpiderCart") = CartStr
End Sub
Sub CartClear
Response.Cookies("SpiderCart") = ""
End Sub
Sub CartDel(ProductID)
'删除某种商品
CartStr = Trim(Request.Cookies("SpiderCart"))
if(CartStr = "") Then Exit Sub
'Alert(CartStr)
if( UBound(Split(CartStr,"|")) = 1 ) Then
Response.Cookies("SpiderCart") = ""
Exit Sub
end if
CartStr = "," & CartStr
ArrCart = Split(CartStr,","&ProductID&"|")
CartStr = ArrCart(0) & Right(ArrCart(1),Len(ArrCart(1))-InStr(ArrCart(1),"*"))
CartStr = Right(CartStr,Len(CartStr) - 1)
Response.Cookies("SpiderCart") = CartStr
End Sub
Function GetColorBYProductID(ProductID)
'返回商品的颜色
CartStr = ","&Trim(Request.Cookies("SpiderCart"))
ArrCart = Split(CartStr,","&ProductID&"|")
ArrCart(1) = Right(ArrCart(1),Len(ArrCart(1)) - InStr(ArrCart(1),"#"))
GetColorBYProductID = Left(ArrCart(1),InStr(ArrCart(1),"*")-1)
End Function
Function GetNumBYProductID(ProductID)
'返回商品的数量
CartStr = ","&Trim(Request.Cookies("SpiderCart"))
ArrCart = Split(CartStr,","&ProductID&"|")
GetNumBYProductID = Left(ArrCart(1),InStr(ArrCart(1),"#")-1)
End Function
Function GetSizeBYProductID(ProductID)
'返回商品的尺寸
CartStr = ","&Trim(Request.Cookies("SpiderCart"))
'Response.Write(CartStr)
'Response.End()
ArrCart = Split(CartStr,","&ProductID&"|")
ArrCart(1) = Right(ArrCart(1),Len(ArrCart(1)) - InStr(ArrCart(1),"*"))
if(InStr(ArrCart(1),",") = 0) Then
GetSizeBYProductID = ArrCart(1)
else
GetSizeBYProductID = Left(ArrCart(1),InStr(ArrCart(1),",")-1)
end if
End Function
Function GetIDStr
'返回购物车中商品由ID组成的字符串
CartStr = Trim(Request.Cookies("SpiderCart"))
if(CartStr = "") Then GetIDStr = "":Exit Function
if(InStr(CartStr,",") = 0 ) Then
GetIDStr = Split(CartStr,"|")(0)
Exit Function
end if
ArrCart = Split(CartStr,",")
For i = 0 to Ubound(ArrCart)
if ( i = 0 ) then
GetIDStr = Split(ArrCart(i),"|")(0)
else
GetIDStr = GetIDStr & "," & Split(ArrCart(i),"|")(0)
end if
Next
End Function
Function isExistsInCart(ProductID)
'判断某个商品是否已经存在购物车中
CartStr = Trim(Request.Cookies("SpiderCart"))
if CartStr="" Then
isExistsInCart = False
Exit Function
end if
CartStr = "," & CartStr
if Instr(CartStr,","& ProductID & "|") > 0 Then
isExistsInCart = True
Else
isExistsInCart = False
End if
End Function
Function GetCartCount
'计算购物车中商品数量
CartStr = Trim(Request.Cookies("SpiderCart"))
if CartStr = "" Then
GetCartCount = 0
Exit Function
end if
GetCartCount = Ubound(Split(CartStr,"|"))
End Function
Function GetMoney
'计算购物车中商品总价格
CartStr = Trim(Request.Cookies("SpiderCart"))
if(CartStr = "") Then GetMoney = 0:Exit Function
Dim m,TotalPrice
Set m = Server.CreateObject("Adodb.RecordSet")
if(InStr(CartStr,",") = 0 ) Then
arr = Split(CartStr,"|")
Sql = "Select NewPrice*"&Left(arr(1),InStr(arr(1),"#")-1)&" as TotalPrice from SP_Detail where id="&arr(0)
m.Open Sql,Conn,1,3
if(m.RecordCount > 0) Then
GetMoney = m("TotalPrice")
Exit Function
else '该商品在购买后已经被删除
CartDel(arr(0)) '清空商品
GetMoney = 0
m.Close
Set m = Nothing
Exit Function
end if
m.Close
end if
ArrCart = Split(CartStr,",")
TotalPrice = 0
'Response.Write(CartStr)
'Response.End()
For i = 0 to Ubound(ArrCart)
arr = Split(ArrCart(i),"|")
Sql = "Select NewPrice*"&Left(arr(1),InStr(arr(1),"#")-1)&" as TotalPrice from SP_Detail where id="&arr(0)
m.Open Sql,Conn,1,3
if(m.RecordCount > 0) Then
TotalPrice = TotalPrice + m("TotalPrice") 'm.fields(0).value
else '该商品在购买后已经被删除
CartDel(arr(0)) '清空商品
end if
m.Close
Next
Set m = Nothing
GetMoney = TotalPrice
End Function
%>
另外一个文件
<%
Dim Conn
Sub ConnOpen(ConnStr)
'数据连接
'参数 ConnStr 数据库物理路径
Set Conn = server.CreateObject("Adodb.Connection")
Conn.Open "Driver={MicroSoft Access Driver (*.mdb)};" & "dbq="&ConnStr
response.Buffer
response.Expires=-9999
session.Timeout = 60
End Sub
Sub ConnClose
Conn.Close()
Set Conn = Nothing
End Sub
Function ExecuteScalar(Sql)
'执行Sql语句,返回单个值结果
Dim Result
rs.Open Sql,Conn,1,3
if(rs.RecordCount > 0) Then
Result = rs.fields(0).value
Else
Result = 0
End if
rs.Close
ExecuteScalar = Result
End Function
Sub Alert(Str)
Response.Write("<script language=""javascript"">alert('"& Str &"');</script>")
End Sub
Sub AlertAndRedirect(Str,PageInfo)
Response.Write("<script language=""javascript"">alert('"& Str &"');window.location = ('"&PageInfo&"');</script>")
End Sub
Sub AlertAndClose(Str)
Response.Write("<script language=""javascript"">alert('"& Str &"');window.close();</script>")
Response.End()
End Sub
Sub AlertAndBack(Str,Num)
Response.Write("<script language=""javascript"">alert('"& Str &"');window.go("&Num&");</script>")
End Sub
Function ReplaceStr(str)
ReplaceStr = Replace(str,"'","['']")
ReplaceStr = Replace(str,"-","[_]")
End Function
Function ReStoreStr(str)
ReStoreStr = Replace(str,"['']","'")
ReStoreStr = Replace(str,"[_]","-")
End Function
Sub DelFile(Path)
'删除指定路径文件
Dim Fs
Set Fs = Server.CreateObject("Scripting.FileSystemObject")
If(Fs.FileExists(Path)) Then Fs.DeleteFile(Path)
Set Fs = Nothing
End Sub
Function GetIP
'得到 IP 地址
if(Request.ServerVariables("REMOTE_ADDR") = "") Then
GetIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
else
GetIP = Request.ServerVariables("REMOTE_ADDR")
end if
End Function
Function ExecuteScalar(Sql)
'执行Sql语句,返回单个值结果
Dim Result
rs.Open Sql,Conn,1,3
if(rs.RecordCount > 0) Then
Result = rs.fields(0).value
Else
Result = 0
End if
rs.Close
ExecuteScalar = Result
End Function
Function GetOrderNo
'生成一个订单号 YYMMDDHHMMSS
Randomize
ranNum=int(90*rnd)+10
GetOrderNo=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
End Function
%>