<%option explicit%> <%'PC版共通定義%> <%'サイト毎の定義&既存アプリ定義%> <% 'on error resume next dim SessionID dim l_objDbClass dim l_objRSet dim l_objRSet2 dim Hozon dim l_strSql dim intEofFlg dim intFromUpdGamen dim intInfo dim intUpdateFlg dim PostNo1, PostNo2 dim CustKen dim CustJob dim CustBirth, CustYear, CustMonth, CustDay dim CustShiharai dim CustName dim Email dim custPassword dim custPasswordKakunin dim PasswordQ dim PasswordA dim jyusho1 dim jyusho2 dim CustPhone dim wphone dim CustFax dim wFax dim CustSex dim wYear dim CustNameKana dim ret dim CustNo dim msg Dim sYomi(90) Dim strDoubleEntryEmail Dim objYu7 'Yubin'7 Ver2.0 Dim wKen Dim wCty1 Dim wCty2 Dim wTwn Dim wTwnExt Dim wVal Dim henkan_flg Dim nIndex Dim l_clsSession Dim l_updSql Dim l_params2 Dim l_params3 %> <% SessionID = Trim(Request("sessionid")) intFromUpdGamen = Trim(Request("FromUpdGamen")) '来た元の画面を取得 1:更新モード、 2:新規登録モード intInfo = trim(Request("info")) intUpdateFlg = request.form("intUpdateFlg") intEofFlg = request.form("intEofFlg") henkan_flg= Request("yuSubmit") Set l_objDbClass = new CDb l_objDbClass.Connect(Session(C_WEBSHOP_CON)) 'Sessionオブジェクト作成 Set l_clsSession = new CSession Call l_clsSession.SetSessionId(SessionID) Call l_clsSession.SelectSession l_strSql = "select * from INIT where ACODE = ? and ID = '1'" Redim l_params(1) l_params(1) = ACODE Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) if Not l_objRSet.Eof then Hozon = cint(l_objRSet("検索結果保存フラグ")) end if l_objRSet.close Set l_objRSet = Nothing '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '入力値の検証と実際にワークテーブルへの入力。 'case分けし各入力画面毎の処理を記述。 if intUpdateFlg = "1" then nIndex = 0 select case intInfo case 0 'お客様名 CustName = trim(request.form("CustName")) if trim(CustName) = "" then msg = "お名前を入力してください" end if if CheckLen(CustName) > 50 then msg = "お名前の入力文字数が多すぎます。入力文字を減らしてください。" end if if msg = "" then l_updSql = " 顧客名 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustName end if case 1 'お客様名カナ CustNameKana = trim(request.form("CustNameKana")) if trim(CustNameKana) = "" then msg = "お名前(フリガナ)を入力してください" end if if CheckLen(CustNameKana) > 50 then msg = "お名前(フリガナ)の入力文字数が多すぎます。入力文字を減らしてください。" end if dim OkCnt dim kana dim cnt dim cnt2 kana = SpaceCut(CustNameKana) OkCnt = 0 Call SetRomeStr() For cnt=1 To Len(kana) For cnt2=1 To UBound(sYomi) If Trim(Mid(kana,cnt,1)) = Trim(sYomi(cnt2)) Then Okcnt = Okcnt + 1 End If Next Next If OkCnt <> Len(kana) Then msg = "お名前(フリガナ)は全角カタカナのみ入力可能です" End If if msg = "" and CustNameKana <> "" then strDoubleEntryEmail = ChkDoubleEntry(CustNameKana, "", intFromUpdGamen) if strDoubleEntryEmail <> "" then msg = "お客様はE-Mailアドレスが" & strDoubleEntryEmail & "で登録済みです" end if end if if msg = "" then l_updSql = " KANA = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustNameKana end if case 2 'E-Mail Email = trim(request.form("EMAIL")) if trim(Email) = "" then msg = "Emailアドレスを入力してください" end if Email = Replace(Email,"'","") if addresscheck(Email) <> "OK" Then msg = addresscheck(EMail) end if if CheckAnk(Email) = "1" then msg = "Emailアドレスは半角にて入力してください" elseif instr(1,Email,"@",1) = 0 then msg = "Emailアドレスに@がありませんご確認ください" end if if intFromUpdGamen = "1" then '更新モード l_strSql = "select * from CUST where EMAIL = ? AND ACODE = ? AND CCODE <> ?" Redim l_params(3) l_params(1) = Email l_params(2) = ACODE l_params(3) = strCustcode Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) else '新規登録モード l_strSql = "select * from CUST where EMAIL = ? AND ACODE = ? AND EMAIL <> ?" Redim l_params(3) l_params(1) = Email l_params(2) = ACODE l_params(3) = Session("email") Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) end if if not l_objRSet.eof then msg = "お客様はE-Mailアドレスが" & Trim(l_objRSet("EMAIL")) & "で登録済みです" end if l_objRSet.close set l_objRSet = nothing if msg = "" then l_updSql = " EMAIL = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = Email end if case 3 'パスワード custPassword = request.form("custPassword") custPasswordKakunin = request.form("custPasswordKakunin") if trim(custPassword) = "" then msg = "パスワードを入力してください。" end if if custPassword <> "" then if CheckAnk(custPassword) = "1" then msg = "パスワードは半角にて入力してください" end if end if if custPassword <> custPasswordKakunin then msg = "パスワードと確認パスワードの内容が違っています。もう一度入力してください" end if if msg = "" then l_updSql = " [パスワード] = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = custPassword end if case 4 'リマインダー PasswordQ = request.form("PasswordQ") PasswordA = request.form("PasswordA") if PasswordQ = "" Then msg = "パスワードを忘れた時の質問を入力してください" End If if PasswordA = "" Then msg = "パスワードを忘れた時の回答を入力してください" End If if msg = "" then l_updSql = " PASSQ = ?" l_updSql = l_updSql & ", PASSA = ?" Redim l_params2(nIndex + 2) nIndex = nIndex + 1:l_params2(nIndex) = PasswordQ nIndex = nIndex + 1:l_params2(nIndex) = PasswordA end if case 5 '郵便番号とりあえず無し。 case 6 '住所 '郵便番号 PostNo1 = request.form("PostNo1") PostNo2 = request.form("PostNo2") CustKen = request.form("CustKen") jyusho1 = request.form("jyusho1") jyusho2 = request.form("jyusho2") if PostNo1 = "" Then msg = "郵便番号、前の3桁を入力してください" elseif CheckNumberx(PostNo1) = "1" then msg = "郵便番号は半角数字のみ入力可能です" elseif CheckLen(PostNo1) <> 3 then msg = "郵便番号、前は3桁で入力してください" End If if msg = "" then if PostNo2 = "" Then msg = "郵便番号、後の4桁を入力してください" elseif CheckNumberx(PostNo2) = "1" then msg = "郵便番号は半角数字のみ入力可能です" elseif CheckLen(PostNo2) <> 4 then msg = "郵便番号、前は4桁で入力してください" End If end if if henkan_flg = "〒から住所変換" and len(PostNo1) >=3 then Set objYu7 = Server.CreateObject("Yu7Com.Yu7Obj.1") ret = objYu7.ZipToAddress(PostNo1 & PostNo2, wKen, wCty1, wCty2, wTwn, wTwnExt, wVal) Set objYu7 = Nothing CustKen = wKen jyusho1 = wCty1 & wCty2 & wTwn jyusho2 = "" end if if msg = "" and CustKen = "" then msg = "都道府県を選択してください。" end if if msg = "" and jyusho1 = "" then msg = "住所を入力してください。" end if if msg = "" and jyusho1 <> "" then if CheckLen(CustKen & jyusho1) > 40 then msg = "住所の上段の入力文字数が多すぎます。入力文字を減らしてください。" elseif CheckLen(CustKen & jyusho1) < 8 then msg = "住所の上段を正しく入力してください。" end if end if if msg = "" and jyusho2 <> "" then if CheckLen(jyusho2) > 40 then msg = "住所の下段の入力文字数が多すぎます。入力文字を減らしてください。" end if end if if msg = "" then l_updSql = " 郵便番号 = ?" l_updSql = l_updSql & ", 都道府県 = ?" l_updSql = l_updSql & ", 住所1 = ?" l_updSql = l_updSql & ", 住所2 = ?" Redim l_params2(nIndex + 4) nIndex = nIndex + 1:l_params2(nIndex) = PostNo1 & "-" & PostNo2 nIndex = nIndex + 1:l_params2(nIndex) = CustKen nIndex = nIndex + 1:l_params2(nIndex) = jyusho1 nIndex = nIndex + 1:l_params2(nIndex) = jyusho2 end if case 7 '電話番号 CustPhone = trim(request.form("CustPhone")) if CustPhone = "" then msg = "電話番号を入力してください" end if wphone = CustPhone if CheckNumberx(wphone) = "1" then msg = "電話番号は半角で数字と−のみ入力可能です" elseif len(CheckNumber(wphone)) < 9 then msg = "電話番号を正しく入力してください" end if If CustPhone <> "" And msg = "" Then If TelHaifunChk(CustPhone) <> True Then 'msg = "電話番号の入力形式が間違っています" End If End If if msg = "" and CustPhone <> "" then strDoubleEntryEmail = ChkDoubleEntry("", CustPhone, intFromUpdGamen) if strDoubleEntryEmail <> "" then msg = "お客様はE-Mailアドレスが" & strDoubleEntryEmail & "で登録済みです" end if end if if msg = "" then l_updSql = " 電話番号 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustPhone end if case 8 'FAX番号 CustFax = trim(request.form("CustFax")) if CustFax <> "" then wfax = CustFax if CheckNumberx(wfax) = "1" then msg = "FAX番号は半角で数字と−のみ入力可能です" elseif len(CheckNumber(wfax)) < 10 then msg = "FAX番号を正しく入力してください" end if end if if msg = "" then if trim(CustFax) = "" then l_strSql = " FAX番号 = NULL" else l_updSql = " FAX番号 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustFax end if end if case 9 '性別 CustSex = request.form("CustSex") if CustSex <> "" then l_updSql = " 性別 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustSex else l_strSql = " 性別 = NULL " end if case 10 '誕生日 CustYear = trim(request.form("CustYear")) CustMonth = trim(request.form("CustMonth")) CustDay = trim(request.form("CustDay")) if CustYear <> "" or CustMonth <> "00" or CustDay <> "00" then If CustYear <> "" Then wYear = CustYear if Len(CheckNumber(wYear)) <> 4 Then msg = "生年月日の西暦を正しく入力してください(4桁)" end if else msg = "生年を入力してください" End If If msg = "" and CustMonth = "00" Then msg = "生年月を選択してください" End If If msg = "" and CustDay = "00" Then msg = "生年日を選択してください" End If CustBirth = CustYear & CustMonth & CustDay '日付の正当性チェックを行う If msg = "" and Len(CustBirth) = 8 Then ret = DateChk(CustBirth, "YYYYMMDD") If ret = False Then msg = "選択した生年月日は存在しません" End If End If else CustBirth = "" end if if msg = "" then if trim(CustBirth) = "" then l_strSql = " BIRTH = NULL " else l_updSql = " BIRTH = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustBirth end if end if case 11 '職業 CustJob = request.form("CustJob") if CustJob <> "" then l_updSql = " 職業 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustJob else l_strSql = " 職業 = NULL " end if case 12 '支払い方法 CustShiharai = trim(request.form("CustShiharai")) if CustShiharai = "" then msg = "お支払い方法を選択してください" end if if CustShiharai <> "" then l_updSql = " 支払方法 = ?" Redim l_params2(nIndex + 1) nIndex = nIndex + 1:l_params2(nIndex) = CustShiharai end if case 13 '会員番号 CustNo = request.form("CustNo") If CustNo <> "" Then If CheckAnk(CustNo) = "1" Then msg = "会員番号は半角で入力してください" End If End If if msg = "" then if CustNo <> "" then l_updSql = " MEMBERID = ?" Redim l_params2(nIndex +1) nIndex = nIndex + 1:l_params2(nIndex) = CustNo else l_strSql = " MEMBERID = NULL" end if end if end select l_objDbClass.BeginTrans if intFromUpdGamen = "1" then '個人情報編集モード 'CUSTテーブルを編集 if msg = "" and l_updSql <> "" then l_updSql = "update CUST set " & l_updSql l_updSql = l_updSql & " WHERE ACODE = ?" l_updSql = l_updSql & " AND CCODE = ?" Redim preserve l_params2(nIndex + 2) nIndex = nIndex + 1:l_params2(nIndex) = ACODE nIndex = nIndex + 1:l_params2(nIndex) = strCustcode Call l_objDbClass.doTranzaction(l_updSql, l_params2) end if else '新規登録モード if msg = "" and intEofFlg = 1 then l_strSql = "insert into TEMP_CUST(ACODE,SESSIONID)" l_strSql = l_strSql & "values(?, ?)" Redim l_params(2) l_params(1) = ACODE l_params(2) = SessionID Call l_objDbClass.doTranzaction(l_strSql, l_params) end if if msg = "" and l_updSql <> "" then l_updSql = "update TEMP_CUST set " & l_updSql l_updSql = l_updSql & " WHERE ACODE = ?" l_updSql = l_updSql & " AND SESSIONID = ?" Redim preserve l_params2(nIndex + 2) nIndex = nIndex + 1:l_params2(nIndex) = ACODE nIndex = nIndex + 1:l_params2(nIndex) = SessionID Call l_objDbClass.doTranzaction(l_updSql, l_params2) end if end if if err.number = 0 then l_objDbClass.CommitTrans else l_objDbClass.RollbackTrans msg = "予期しないエラーが発生いたしました。" end if if msg = "" then if intFromUpdGamen = "1" then '更新モード時 session("sessionid") = SessionID session("gamen") = 2 session("info") = intInfo if henkan_flg = "〒から住所変換" and len(PostNo1) >=3 then else server.transfer("seisan1_2.asp") end if else '新規登録モード session("sessionid") = sessionid if henkan_flg = "〒から住所変換" and len(PostNo1) >=3 then else server.transfer("InsertCust.asp") end if end if end if end if '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if intFromUpdGamen = "1" then '現在の顧客情報登録状況を取得 l_strSql = "SELECT * FROM CUST" l_strSql = l_strSql & " WHERE ACODE = ?" l_strSql = l_strSql & " AND CCODE = ?" Redim l_params(2) l_params(1) = ACODE l_params(2) = strCustcode else '現在の顧客情報登録状況を取得 l_strSql = "SELECT * FROM TEMP_CUST" l_strSql = l_strSql & " WHERE ACODE = ?" l_strSql = l_strSql & " AND SESSIONID = ?" Redim l_params(2) l_params(1) = ACODE l_params(2) = SessionID end if Set l_objRSet = l_objDbClass.doCursolOpen(l_strSql, l_params, 0, adOpenForwardOnly, 0, 0) if l_objRSet.eof or l_objRSet.bof then intEofFlg = 1 else intEofFlg = 0 end if %> 顧客情報登録
会員情報入力

<% 'もしエラーがあったら、Msgを出力する。 if msg <> "" then response.write("" & msg & "
") end if select case intInfo case 0 'お客様名%> お客様名
" size="26" maxlength="50">
<%case 1 'お客様カナ名%> お客様カナ名
" size="26" maxlength="50">
<%case 2 'E-mailアドレス%> E-mailアドレス
" size="41" maxlength="70">
<%case 3 'パスワード%> パスワード


パスワード確認用

<%case 4 'リマインダー%> <%case 5 '郵便番号%> <%case 6 'ご住所 if PostNo1 = "" then PostNo1 = left(GetItemValue(intEofFlg, l_objRSet, "郵便番号", ""),3) end if if PostNo2 = ""then PostNo2 = mid(GetItemValue(intEofFlg, l_objRSet, "郵便番号", ""),5,4) end if CustKen = GetItemValue(intEofFlg, l_objRSet, "都道府県", CustKen) %> 【郵便番号】



【ご住所】

" size="21" maxlength="40">
" size="21" maxlength="40">
<% l_objRSet2.close set l_objRSet2 = nothing %> <%case 7 '電話番号%> 電話番号
"> <%case 8 'FAX番号%> FAX番号
"> <%case 9 '性別 CustSex = GetItemValue(intEofFlg, l_objRSet, "性別", CustSex) %> 性別
<%case 10 '生年月日 CustBirth = GetItemValue(intEofFlg, l_objRSet, "BIRTH", "") if CustYear = "" and intEofFlg = 0 and intUpdateFlg <> "1" then CustYear = mid(CustBirth, 1, 4) end if if CustMonth = "" and intEofFlg = 0 and intUpdateFlg <> "1" then CustMonth = mid(CustBirth, 5, 2) end if if CustDay = "" and intEofFlg = 0 and intUpdateFlg <> "1" then CustDay = mid(CustBirth, 7, 2) end if %> 生年月日
日 <%case 11 'ご職業 CustJob = cstr(GetItemValue(intEofFlg, l_objRSet, "職業", CustJob)) %> ご職業
<%case 12 'お支払方法 CustShiharai = GetItemValue(intEofFlg, l_objRSet, "支払方法", CustShiharai) %> お支払い方法
<%case 13 '会員番号%> 会員番号
" size="11" maxlength="8"> <%end select%>

ショッピングカート
SHOP MENUへ
<%if intFromUpdGamen = "2" then%> 戻る <%else%> 戻る <%end if%>
<% 'SESSION更新 Call l_clsSession.UpdateSession set l_objRSet = nothing Set l_objDbClass = Nothing %>