안녕하세요.......
이러한 오류가 발생합니다... 도움을 주십시요........
http://www.kgy9041.com 페이지의 왼쪽로그인 부분에 회원가입을 클릭하면
가입을 하고 나면 오류가 발생합니다..
----
<오류메세지>
Microsoft OLE DB Provider for SQL Server error '80040e2f'
'kimgeun_db.dbo.member' 테이블, 'mem_id' 열에 NULL 값을 삽입할 수 없습니다. 열에서 null을 사용할 수 없습니다. INSERT이(가) 실패했습니다.
/Members/regist_ok.asp, line 62
<회원가입 소스>
regist.asp
<html> <head><title>회원가입</title> <link rel="stylesheet" type="text/css" href="/stylesheet.css"> <style type="text/css"> td {padding-left:3;} table.content {font-size:10pt;font-family:돋움;font-color:#002C57;} .style1 { color: #666666; font-weight: bold; } body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } .table {border-left:#cccccc 1px solid;border-top:#cccccc 1px solid;border-bottom:#cccccc 1px solid;} .tables {border-top:#cccccc 1px solid;border-bottom:#cccccc 1px solid;} </style> <script language="JavaScript"> <!-- function check_id() { var urlString; urlString = "/members/check_id.asp?checkid=" + document.registform.userid.value; window.open(urlString, "check_id","resizable=yes,top=82,left=378,width=635,height=164") } function find_zipcode() { window.open("/members/find_zipcode.asp", "find_zipcode","resizable=yes,top=82,left=364,width=652,height=250,scrollbars=1" ); } function remove_zipcode() { document.registform.zip1.value = ""; document.registform.zip2.value = ""; document.registform.address1.value = ""; document.registform.address2.value = ""; } function checkit() { var str; str = document.registform.name.value; if(str == "") { alert("이름을 기입해 주십시요"); document.registform.name.focus(); return true; } str = document.registform.userid.value; if(str == "") { alert("아이디는 반드시 입력해야 합니다."); document.registform.userid.focus(); return true; } if(str.length < 4 || str.length > 10) { alert("아이디는 4글자 이상, 10글자 이내이어야 합니다."); document.registform.userid.focus(); return true; } for(i=0;i<str.length;i++) { if(str.charCodeAt(i)>12592) { alert("한글 아이디는 안됩니다. 다시 입력해 주세요."); document.registform.userid.value=""; document.registform.userid.focus(); return false; break; } } str = document.registform.pwd1.value; if(str == "") { alert("비밀번호는 반드시 입력해야 합니다."); document.registform.pwd1.focus(); return true; } if(document.registform.pwd1.value != document.registform.pwd2.value) { alert("비밀번호가 일치하지 않습니다."); document.registform.pwd2.focus(); return true; } str1 = document.registform.zip1.value; str2 = document.registform.zip2.value; if(str1 == "" || str2 == "") { alert("우편번호를 정확히 입력해 주세요."); return true; } var jumin1 =document.registform.jumin1.value; var jumin2 =document.registform.jumin2.value; if((document.registform.jumin1.value == "") || (document.registform.jumin2.value == "")) { alert("주민등록번호를 입력해 주세요."); document.registform.jumin1.focus(); return true; } str = document.registform.email.value; if(str == "") { alert("메일주소를 입력해야 합니다."); document.registform.email.focus(); return true; } document.registform.submit(); return true; }
function Validate() { var f1=document.registform.jumin1.value.substring(0,1) var f2=document.registform.jumin1.value.substring(1,2) var f3=document.registform.jumin1.value.substring(2,3) var f4=document.registform.jumin1.value.substring(3,4) var f5=document.registform.jumin1.value.substring(4,5) var f6=document.registform.jumin1.value.substring(5,6) var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7 var s1=document.registform.jumin2.value.substring(0,1) var s2=document.registform.jumin2.value.substring(1,2) var s3=document.registform.jumin2.value.substring(2,3) var s4=document.registform.jumin2.value.substring(3,4) var s5=document.registform.jumin2.value.substring(4,5) var s6=document.registform.jumin2.value.substring(5,6) var s7=document.registform.jumin2.value.substring(6,7) hap=hap+s1*8+s2*9+s3*2+s4*3+s5*4+s6*5 hap=hap%11 hap=11-hap hap=hap%10
if (hap != s7){ alert('잘못된 주민등록번호 입니다') document.registform.jumin1.value = "" document.registform.jumin2.value = "" document.registform.jumin1.focus() } } //--> </script>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"></head> <body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <form name="registform" action="/Members/regist_ok.asp" method="post"> <table width="600" height="452" border="0" cellpadding="0" cellspacing="0" class="content"> <tr> <td height="22" colspan="4"><img src="mem_img/mem_title_bar.jpg" width="635" height="22"></td> </tr> <tr> <td height="25" colspan="4" align="center" width="635"> <font face="돋움" size="-1">회원가입</font></td> </tr> <tr> <td height="5" colspan="4" width="635"> </td></tr> <!--빈 줄 --> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>이름</strong></font></td> <td width="8" height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="10" name="name" maxlength="8"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">사용자 ID</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="10" name="userid" maxlength="10"> <a href="javascript:check_id();">[ID 중복확인]</a></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">암호</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="password" size="10" name="pwd1" maxlength="8"> ▶영문,숫자 4자 이상 10자까지</td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">암호확인</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="password" size="10" name="pwd2" maxlength="8"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">우편번호</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"> <input type="text" size="3" name="zip1" maxlength="3" onFocus="document.registform.address2.focus()"> - <input type="text" size="3" name="zip2" maxlength="3" onFocus="document.registform.address2.focus()"> <a href="javascript:find_zipcode();">[우편번호 찾기]</a> <a href="javascript:remove_zipcode();">[우편번호 지우기]</a></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">주소1</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input size="33" name="address1" maxlength="33" onFocus="document.registform.address2.focus()"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">주소2(번지)</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input size="33" name="address2" maxlength="33"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">전화번호</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="17" name="tel" maxlength="20"> ▶ 예) 02-345-6789 / 011-123-4567</td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>주민등록번호</strong></font></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="6" name="jumin1" maxlength="6"> - <input type="text" size="7" name="jumin2" maxlength="7" onBlur="Validate();"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">성별</font></strong></td> <td height="25" align="left" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" align="left" style="border-style:solid;border-width:1"><input type="radio" name="sex" value="M" checked> 남자 <input type="radio" name="sex" value="F"> 여자</td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">직업</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><select name="job" size="1" style="font-family: 돋움; font-size: 12; background-color: rgb(255,255,255); color: rgb(0,0,0)"> <option value="not">선택하여 주십시오. <option value="회사원">회사원 <option value="학생">학생 <option value="주부">주부 <option value="자영업">자영업 <option value="공무원">공무원 <option value="기타">기타 </select></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">email 주소</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="32" name="email" maxlength="40"></td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">관심분야</font></strong></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"> <table width="541" height="25" border="0" class="content"> <tr> <td width="33%"><input type="checkbox" name="interest" value="국내가요">국내가요</td> <td width="33%"><input type="checkbox" name="interest" value="POP/Rock">POP/Rock</td> <td width="34%"><input type="checkbox" name="interest" value="HipHop/R&B">HipHop/R&B</td></tr> <tr> <td><input type="checkbox" name="interest" value="Jazz">Jazz</td> <td><input type="checkbox" name="interest" value="New Age">New Age</td> <td><input type="checkbox" name="interest" value="영화음악">영화음악</td></tr> <tr> <td><input type="checkbox" name="interest" value="가곡">가곡</td> <td><input type="checkbox" name="interest" value="캐롤">캐롤</td> <td><input type="checkbox" name="interest" value="국악">국악</td></tr> <tr> <td><input type="checkbox" name="interest" value="종교음악">종교음악</td> <td><input type="checkbox" name="interest" value="실용음악">실용음악</td> <td><input type="checkbox" name="interest" value="유아/아동">유아/아동</td></tr> <tr> <td><input type="checkbox" name="interest" value="Classic">Classic</td> <td><input type="checkbox" name="interest" value="World Music">World Music</td> <td> </td></tr> </table> </td> </tr> <tr> <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>자기소개</strong></font></td> <td height="25" bgcolor="#AAA3B5" class="tables"> </td> <td width="541" height="25" style="border-style:solid;border-width:1"><textarea rows="5" cols="58" name="intro" wrap="physical"></textarea></td> </tr> <tr> <td height="50" colspan="4" width="635"> <center> <input type="button" value="회원 가입" OnClick="checkit();" style="width:65px;background-color:#AAA3B5;color:#ffffff"> <input type="reset" value="취소(재작성)" style="width:85px;color:#ffffff;background-color:#AAA3B5;"></center> </td> </tr> </table> </td> </tr> </table> </form> </body> </html>
regist_ok.asp ---이건 가입 처리 소스
<% jumin = Request("jumin1") & "-" & Request("jumin2") str="Provider=SQLOLEDB.1;Data Source=localhost;Initial catalog=kimgeun_db;User Id=kimgeun;Password=kgykgy;" Set db = Server.CreateObject("ADODB.Connection") db.Open str SQL = "Select mem_userid From member Where mem_userid='" & Request("userid") & "'" Set myID = db.Execute(SQL) SQL = "select mem_jumin from member where mem_jumin='" & jumin & "'" Set myJumin = db.Execute(SQL) If Not(myID.EOF) Then %> <script language="javascript"> alert("이미 존재하는 아이디입니다. 다시 기입해주세요"); history.back(); </script> <% Elseif Not(myJumin.EOF) Then %> <script language="javascript"> alert("이미 존재하는 주민등록번호입니다. 정확히 기입해 주세요"); history.back(); </script> <% myID.close Set myID = Nothing myJumin.close Set myJumin = Nothing Else name = Request("name") userid = Request("userid") pwd = Request("pwd1") zip = Request("zip1") & "-" & Request("zip2") address1 = Trim(Request("address1")) address2 = Trim(Request("address2")) tel = Request("tel") jumin = Request("jumin1") & "-" & Request("jumin2") sex = Request("sex") job = Request("job") email = Request("email") For i=1 To Request("interest").count interest = interest & "/" & Request("interest")(i) Next intro = Request("intro") intro = Replace(intro,"'","''") '************************************여기서부터 DB에 등록하는 과정입니다.**************************** SQL = "Insert Into Member (mem_name,mem_userid,mem_pwd,mem_zip," SQL = SQL & "mem_address1,mem_address2,mem_tel,mem_jumin," SQL = SQL & "mem_sex,mem_job,mem_interest,mem_email,mem_intro) Values " SQL = SQL & "('" & name & "','" SQL = SQL & userid & "','" SQL = SQL & pwd & "','" SQL = SQL & zip & "','" SQL = SQL & address1 & "','" SQL = SQL & address2 & "','" SQL = SQL & tel & "','" SQL = SQL & jumin & "','" SQL = SQL & sex & "','" SQL = SQL & job & "','" SQL = SQL & interest & "','" SQL = SQL & email & "','" SQL = SQL & intro & "')" db.Execute SQL 'Response.Write SQL 'Response.End %> <script language="javascript"> alert("회원가입을 축하드립니다. \n\n회원 로긴을 해주십시요"); location.replace("/main.asp"); self.close(); </script> <% End If%>
[저의 ms sql 테이블 ] --- 여기서는 mem_id 만 기본키이고 데이터 형식은 일련번호입니다. 그리고 이건 원래 access db 입니다. 그래서 ms sql 로 바꾼 겁니다.
|
|
도데체 어디에 오류가 났는지 알 수가 없군요.........
아 참, mem_id 에 insert 가 되는 지 모르겠습니다....
이상입니다... 그러니 도움을 주십시요................
|