我以前用霹雳网站系统的,注册后写入收费表都正常,因为卡,不得不换了网站系统,现在的网站系统可以正常注册,但注册后信息不能写入收费表,我也不明白怎么回事,注册页有这样的判断语句的:
<!--#include virtual="conn.asp"-->
<!--#include virtual="NOCACHE.asp"-->
<!--#include virtual="config.asp"-->
<%http = Request.ServerVariables("HTTP_REFERER")
If instr(http,"reg.asp")=0 Then
Response.Redirect "err.asp?id=13"
response.end
end if
Function IsEmail(Email)
ValidFlag = False
If (Email <> "") And (InStr(1, Email, "@") > 0) And (InStr(1, Email, ".") > 0) Then
atCount = 0
SpecialFlag = False
For atLoop = 1 To Len(Email)
atChr = Mid(Email, atLoop, 1)
If atChr = "@" Then atCount = atCount + 1
If (atChr >= Chr(32)) And (atChr <= Chr(44)) Then SpecialFlag = True
If (atChr = Chr(47)) Or (atChr = Chr(96)) Or (atChr >= Chr(123)) Then SpecialFlag = True
If (atChr >= Chr(58)) And (atChr <= Chr(63)) Then SpecialFlag = True
If (atChr >= Chr(91)) And (atChr <= Chr(94)) Then SpecialFlag = True
Next
If (atCount = 1) And (SpecialFlag = False) Then
BadFlag = False
tAry1 = Split(Email, "@")
UserName = tAry1(0)
DomainName = tAry1(1)
If (UserName = "") Or (DomainName = "") Then BadFlag = True
If Mid(DomainName, 1, 1) = "." then BadFlag = True
If Mid(DomainName, Len(DomainName), 1) = "." then BadFlag = True
ValidFlag = True
End If
End If
If BadFlag = True Then ValidFlag = False
IsEmail = ValidFlag
End Function
function checkpass(a)
checkpass=false
for i=1 to len(a)
b=asc(mid(a,i,1))
if b<48 or (b>55 and b<97) or b>122 then
checkpass=true
exit for
end if
next
end function
extcode=int(request.form("extcode"))
extcoded=request.form("extcoded")
ps_loginname=request.form("ps_loginname")
ps_nickname=request.form("ps_nickname")
ps_password=request.form("ps_password")
ps_repassword=request.form("ps_repassword")
ps_email=request.form("ps_email")
ps_question=request.form("ps_question")
ps_answer=request.form("ps_answer")
ps_person_id=request.form("ps_person_id")
if instr(ps_loginname,"'")<>0 or instr(ps_loginname,"=")<>0 or instr(ps_loginname,"&")<>0 or instr(ps_loginname,"%")<>0 then
Response.Redirect "err.asp"
response.end
elseif len(ps_loginname)<6 or len(ps_loginname)>10 then
response.redirect "err.asp?id=1"
response.end
elseif checkpass(ps_loginname)=true then
response.redirect "err.asp?id=2"
response.end
elseif len(ps_person_id) < 15 or len(ps_person_id)=16 or len(ps_person_id)=17 or len(ps_person_id)>18 then
response.redirect "err.asp?id=3"
response.end
elseif isemail(ps_email)=false then
response.redirect "err.asp?id=4"
response.end
elseif len(ps_question)="" or len(ps_answer)="" then
response.redirect "err.asp?id=5"
response.end
elseif len(ps_question) < 6 or len(ps_answer) < 6 then
response.redirect "err.asp?id=6"
response.end
elseif len(ps_nickname)="" then
response.redirect "err.asp?id=7"
response.end
elseif extcode<>int(session("regzcm")) or extcode="" then
response.redirect "err.asp?id=8"
response.end
elseif len(ps_password)<6 or len(ps_password)>15 then
response.redirect "err.asp?id=46"
response.end
elseif ps_password<>ps_repassword then
response.redirect "err.asp?id=47"
response.end
else
set rs1 = Server.CreateObject("ADODB.Recordset")
sql="select * from MEMB_INFO where memb___id = '"&ps_loginname&"'"
rs1.open sql,conn ,1,1
if not rs1.eof then
response.redirect "err.asp?id=9"
response.end
else
set rs2 = Server.CreateObject("ADODB.Recordset")
sql="INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('"&ps_loginname&"','"&ps_password&"','"&ps_nickname&"', '1','1234','11111','"&ps_person_id&"','12343','"&ps_email&"','12345','"&ps_question&"','"&ps_answer&"','1','2003-1-1','2003-1-1','2003-1-1','2003-1-1','0','0','0')"
set rs2=conn.execute(sql)
sql="select memb_guid from MEMB_INFO where memb___id= '"&ps_loginname&"'"
set rs=conn.execute(sql)
musf=rs("memb_guid")
sql2="INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20051111','1',1234,'"&ps_loginname&"','"&ps_nickname&"','"&musf&"','1','6','3','6','6','2003-11-25 00:00:00','0' )"
set rs2=conn.execute(sql2)
if xinshouqian<>0 then
sql3="INSERT INTO warehouse (AccountID,Money ) VALUES ('"&ps_loginname&"',"&xinshouqian&" )"
set rs2=conn.execute(sql3)
end if
end if
end if
set rs2=conn.execute(sql)
set rs2=conn.execute(sql2)
session("regzcm")=""
Session.Abandon
rs1.close
rs2.close
conn.close
set rs1=nothing
set rs2=nothing
set conn=nothing%>
其中这一段,意思应该就是注册成功以后写入收费表数据:
sql="select memb_guid from MEMB_INFO where memb___id= '"&ps_loginname&"'"
set rs=conn.execute(sql)
musf=rs("memb_guid")
sql2="INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20051111','1',1234,'"&ps_loginname&"','"&ps_nickname&"','"&musf&"','1','6','3','6','6','2003-11-25 00:00:00','0' )"
可是注册成功后就是没有在收费表中写入数据。 我从未学过数据库存,试着编触发器,结果有语法错误,不行,不得不来这里请教高人,帮帮我吧。急死了
[此贴子已经被作者于2004-11-3 3:18:36编辑过]