RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
  회원증을 발급받은 후 1주일동안은 발급버튼을 눌러도 재발급이 되지 않아야한다는 것이 고객사층의 정책인데, 이와 무관하게 무한발급(...)이 가능한 문제점이 뒤늦게 민원제기되었다. 당시 이 시스템을 만든 사람은 이미 퇴사를 하였고, 인수인계를 전혀 받지 못한 나는 처음보는 소스인데다가 또 소스 자체도 이상했던지라 헤매느라 시간이 걸렸다. 개발을 굉장히 못하는 분이었다는 소문인데... 여튼 "왜 그렇게 했을까" 싶은 이상한 코드가 곳곳에 산재해있었다. 그런데 적고 보니 참 별거 아닌거같은 생각도 좀 들지만.
 
  문제해결 이후 팀장님께 보낸 메일의 내용이다. 저거 조금 고치려고 나는 오늘 하루를 희생했다ㅠ_ㅠ (애초에 어느 파일을 고쳐야 하는지 조차 안 알려주니 고객사 서버를 뒤적뒤적(;))

         ※ 오늘 새롭게 알게 된 함수 : datediff("d", rs("lastregdate"),rs("m_sysdate"))
                                       "d"를 h(시간), m(분) 등으로 바꾸어 사용하는 것도 가능하다.


------------------------------------------------------------------------------------------------
l  GlobalFunction.asp 에서 RegistMobileId함수 

[ 변경 전 ]

: 데이터베이스에 해당 ID가 존재할 경우, 제한시간 검사을 검사하는데 mi에 대입되는 식이 이상하네요. Long타입으로 1/24 1/12를 할 경우의 값은 0 이므로 어떤 경우에나 mi에 대입되는 값은 0이 됩니다.

sql = "select regno, (lastregdate-sysdate)*1440 as mi from mid_idmaster where id='" & a_sno & "' "

 

/* 중략 */

 

Dim mi

mi = CLng(rs("mi"))*CLng(1/24)*CLng(1/12)

if mi < LIMIT_TIME then

a_return = "-10"

else

‘ 생략

end if

 

[ 변경 후 ]

   : datediff함수를 이용하여 일(day)단위로 계산합니다.

 sql = "select regno, lastregdate, sysdate as m_sysdate from mid_idmaster where id='" & a_sno & "' "

    

     /* 중략 */

 

Dim TimeCheck

TimeCheck=datediff("d", rs("lastregdate"),rs("m_sysdate"))   '경과된 Day 확인

if TimeCheck < LIMIT_TIME then

a_return = "-10"

else

    ‘ 생략

End if

 

   더불어 mid.asp에서 80번째 라인을 보면 재발급을 위한 시간 제한이 0으로 설정되어 있었고 이를 7로 바꾸었습니다.  

 

   그리고 세 가지의 에러코드가 있으나 일률적으로 ‘회원증 발급 도중 에러 발생’이라는 일률적인 에러 메시지를 띄우고 있었습니다. 그래서 해당 부분에서 시간제한에 해당하는 에러코드를 리턴받은 경우 다음과 같이 메시지를 띄우도록 수정하였습니다.
-------------------------------------------------------------------------------------

그나저나 남이 헤집어놓은 방을 청소하는 느낌이라 유지보수는 썩 즐겁지 않다.
게다가 ASP는 이제 그만 하고 싶다. 난 ASP가 싫어!!!!!

2009/11/23 20:02 2009/11/23 20:02
http://deng-i.net/blog/dream/trackback/472
[로그인][오픈아이디란?]
보댕:하하하
댕이넷☆ (188)
브라보 마이 라이프! (101)
한 뼘 더 자라기 (41)
브랜드메이킹 (38)
공부하는 개발자 (7)