File name: addrbook/chkuser.sub (5,709 bytes) Text file viewer v1.2
    1 : /* file: chkuser.sub
    2 : 
    3 :    주소록 사용자 인증(쿠키) 부 프로그램 (author: 서광현)
    4 : 
    5 :    Copyright (c) 2001/02/22 by Wesoft
    6 :    All Rights Reserved.
    7 : */
    8 : 
    9 : ERR_ID= -1;
   10 : ERR_PASS= -2;
   11 : 
   12 : if(login==0) htmlquery("COOKIE");
   13 : if(login==0 && usinfo=="")
   14 :  {
   15 :     MSG1= "쿠키 오류";
   16 :     MSG2= "클라이언트로부터 쿠키를 받을 수 없습니다!<br><br>"
   17 :         ~ "Internet Explorer의 '<u>인터넷 옵션</u>' 메뉴항목을 눌러 "
   18 :         ~ "'<u>고급</u>' 항목의 '<font color=#f00000>시스템보안</font>'에"
   19 :         ~ " 있는 '<font color=#f00000>쿠키</font>' 항목이<br>"
   20 :         ~ " '<font color=#f00000>쿠키를 항상 허용</font>'으로 되어 있는지"
   21 :         ~ " 점검하세요!<br><br>만일 선택이 되어 있지 않다면 지금 선택하고"
   22 :         ~ " '<u>확인</u>' 버튼을 누른 후 다시 로그인 하세요!"
   23 :         ~ LOGIN_BUTTON;
   24 :     print_type("");
   25 :     formdump(message_form);
   26 :     return(FAIL);
   27 :  }
   28 : 
   29 : if(usinfo!="")
   30 :  {
   31 :     usinfo= left(usinfo, cookie_garbage) ~ mid(usinfo, cookie_garbage+2);
   32 :     decoding= decode(usinfo, "", decode_variable);
   33 :     htmlquery(decoding);
   34 :     dist_date= date(0) - val(ckdate);
   35 :     if(dist_date<0 || dist_date>1) dist= COOKIE_EXPIRE*60+1;
   36 :      else
   37 :       {
   38 :          dist_date*= 86400; // 1일 경과분의 초단위 시간(24*60*60)
   39 :          time= time(0);
   40 :          cur_sec= left(time,2)*3600 + mid(time,3,2)*60 + right(time,2);
   41 :          cookie_hour= val(left(cktime,2));
   42 :          cookie_min= val(mid(cktime,3,2));
   43 :          cookie_sec= cookie_hour*3600 + cookie_min*60 + val(right(cktime,2));
   44 :          dist= abs(cur_sec + dist_date - cookie_sec);
   45 :       }
   46 :     if(dist>COOKIE_EXPIRE*60)
   47 :      {
   48 :         MSG1= "쿠키만기 오류";
   49 :         MSG2= COOKIE_EXPIRE ~ "분간 사용하지 않아 쿠키가 만기되었습니다."
   50 :             ~ " 다시 로그인 하세요!" ~ LOGIN_BUTTON;
   51 :         print_type("");
   52 :         formdump(message_form);
   53 :         return(FAIL);
   54 :      }
   55 :  }
   56 : if(ckid=="" && login!=1) // 로긴 상태가 아닌데 ID가 없는 경우
   57 :  {
   58 :     if(id!="") ckid= id;
   59 :     MSG1= "주소록 ID 오류";
   60 :     MSG2= "주소록 ID: <font color=#f00000>" ~ ckid~ "</font> 는 "
   61 :         ~ "로그인을 하지 않았습니다. 로그인을 하십시요!" ~ LOGIN_BUTTON;
   62 :     print_type("");
   63 :     formdump(message_form);
   64 :     return(ERR_ID);
   65 :  }
   66 : 
   67 : qstr= "select selno,ldtime,lldtime,pass,title,"
   68 :     ~ "usecnt,class,kind,useflag,name,email,pagerec from "
   69 :     ~ myustable ~ " where id='" ~ ckid ~ "'";
   70 : 
   71 : if(mysql_query(mysql, qstr)==MYSQL_ERR) { err_query(); return(FAIL); }
   72 : myresult= mysql_store_result(mysql);
   73 : if(myresult==MYSQL_ERR) { err_store_result(); return(FAIL); }
   74 : 
   75 : recnt= mysql_num_rows(myresult);
   76 : if(recnt<1)
   77 :  {
   78 :     if(login!=1) // 로긴 상태가 아닐때만 에러 메시지를 출력
   79 :      {
   80 :         MSG1= "주소록 ID 오류";
   81 :         MSG2= "주소록 ID: <font color=#f00000>" ~ ckid
   82 :             ~ "</font> 가 등록되지않았거나 삭제되었습니다." ~ HELP_ADMIN;
   83 :         lc= "login"; // 로그인 화면으로 전환을 위하여
   84 :         print_type("");
   85 :         formdump(message_form);
   86 :      }
   87 :     return(ERR_ID);
   88 :  }
   89 : row= mysql_fetch_row(myresult);
   90 : if(row==MYSQL_ERR) { err_fetch_row(); return(FAIL); }
   91 : mysql_free_result(myresult);
   92 : 
   93 : us_selno  = row[0];
   94 : us_ldtime = row[1];
   95 : us_lldtime = row[2];
   96 : us_pass   = decode(row[3], "", decode_variable);
   97 : us_title  = row[4];
   98 : us_usecnt = row[5];
   99 : us_class  = row[6];
  100 : us_kind   = row[7];
  101 : us_useflag= row[8];
  102 : us_name   = row[9];
  103 : us_email  = row[10];
  104 : pagerec= val(row[11]);
  105 : 
  106 : if(pagerec<5) pagerec= 5;
  107 :   else if(pagerec>20) pagerec= 20;
  108 : if(us_class=="A") us_kind="C", us_useflag= "Y"; // 관리자 kind,useflag 사용안함
  109 : if(admin==0 && us_class=="A")
  110 :  {
  111 :     MSG1= "사용자가 아닙니다.";
  112 :     MSG2= "관리자는 이 프로그램을 실행할 수 없습니다!" ~ BACK_BUTTON;
  113 :     print_type("");
  114 :     formdump(message_form);
  115 :     return(FAIL);
  116 :  }
  117 : if(admin==1 && us_class!="A")
  118 :  {
  119 :     MSG1= "관리자가 아닙니다.";
  120 :     MSG2= "관리자만 이 프로그램을 실행할 수 있습니다!" ~ BACK_BUTTON;
  121 :     print_type("");
  122 :     formdump(message_form);
  123 :     return(FAIL);
  124 :  }
  125 : if(ckpass!=us_pass && us_kind!="O"
  126 :    || ckpass!=us_pass && us_kind=="O" && ckpass!="")
  127 :  {
  128 :     if(login==0) // 로긴 상태가 아닐때만 에러 메시지를 출력
  129 :      {
  130 :         MSG1= "주소록 암호 오류";
  131 :         MSG2= "주소록 ID: <font color=#f00000>" ~ ckid
  132 :            ~ "</font> 의 암호가 일치하지 않습니다. 다시 로그인 하세요!"
  133 :            ~ LOGIN_BUTTON;
  134 :         print_type("");
  135 :         formdump(message_form);
  136 :      }
  137 :     return(ERR_PASS);
  138 :  }
  139 : if(us_useflag!="Y")
  140 :  {
  141 :     if(us_useflag=="N")
  142 :      {
  143 :         MSG1= "사용 정지 처리";
  144 :         MSG2= "주소록 ID: <font color=#f00000>" ~ ckid
  145 :             ~ "</font>는 사용이 일시 정지된 상태입니다." ~ HELP_ADMIN;
  146 :         lc= "login"; // 로그인 화면으로 전환을 위하여
  147 :      }
  148 :     else if(us_useflag=="S")
  149 :      {
  150 :         MSG1= "신규 신청 처리";
  151 :         MSG2= "주소록 ID: <font color=#f00000>" ~ ckid
  152 :             ~ "</font>는 신청이 접수되어 처리중입니다!" ~ BACK_BUTTON;
  153 :      }
  154 :     else
  155 :      {
  156 :         MSG1= "알수없는 주소록 ID";
  157 :         MSG2= "주소록 ID: <font color=#f00000>" ~ ckid
  158 :             ~ "</font>는 사용여부를 알수없습니다." ~ HELP_ADMIN;
  159 :         lc= "login"; // 로그인 화면으로 전환을 위하여
  160 :      }
  161 :     print_type("");
  162 :     formdump(message_form);
  163 :     return(FAIL);
  164 :  }
  165 : 
  166 : if(login==1)
  167 :  {
  168 :     us_lldtime= us_ldtime;
  169 :     us_ldtime= date(1) ~ " " ~ left(time(1),5);
  170 :     ++us_usecnt; // 로그인 횟수 증가
  171 :     qstr= "update " ~ myustable
  172 :         ~ strform(" set ldtime='{$us_ldtime}',lldtime='{$us_lldtime}',",
  173 :                   " usecnt={$us_usecnt} where selno={$us_selno}");
  174 :     mysql_query(mysql, qstr);
  175 :  }
  176 : 
  177 : openpassmatch= 0;
  178 : if(us_class!="A")
  179 :  {
  180 :     mytable= preTBname ~ ckid;
  181 :     if(ckpass==us_pass) openpassmatch= 1;
  182 :  }
  183 : 
  184 : if(us_lldtime!="") addr_llogin_time= insert_week(us_lldtime);
  185 :  else if(us_class!="A") addr_llogin_time= "가입을 축하드립니다!";
  186 :   else addr_llogin_time= "주소록 사용을 축하드립니다!";
  187 : 
  188 : if(send_cookie!="NO") send_cookie(ckid, ckpass);
  189 : return(OK);
File name: addrbook/chkuser.sub (5,709 bytes) Wesoft Corp. ⓒ 2001 All rights reserved.