반응형
맨날 JavaScript 까먹어서 이번에 걍 정리해놓고

앞으로 가져다가 사용해야겠다.. 에고~~ 이거 맨날 삽질이구낭... 흠..

우선적으로 숨기기 위해서 아래와 같이 묵는다.


1.  DIV or SPAN 으로 묶기.
    ( 기본적으로 onload시 hidden 상태로 유지되도록 style를 none으로 설정한다. )

<span id="password_hint_area" style="display:none">
    <table width="615" border="0" cellspacing="1" cellpadding="0" bgcolor="e5e5e5">
      <tr>
        <td class="detail_name">비밀번호 힌트</td>
        <td class="detail_value">
   <select name="password_hint" class="select" id="password_hint" style="width:415px">
           <option value="none" >비밀 번호 질문 선택</option>
             <? while($rows = mysql_fetch_array($password_question)) {?>
             <option value="<?= $rows[PK_CODE] ?>">
             <?= $rows[CODE_NAME]?>
             </option>
             <? } ?>
         </select> 
        </td>
      </tr>
      <tr>
        <td class="detail_name">비밀번호 답변</td>
        <td class="detail_value"><input type="text" name="password_hint_value" id="textfield8" class="input_box" size="20" maxlength="20"/></td>
      </tr>
      <tr>
        <td height="30" colspan="2" align="center" valign="middle" bgcolor="FFFFFF">
         <a href="javascript:searchPassword();"><img src="/image/member_info/btn_searchPassword.gif" align="absmiddle"></a>        </td>
        </tr>
    </table>
   </span>


2. javascript 함수 내에서 아래와 같이 display속성을 변경하도록 한다.
    ( 졸간단한데 왜 만날 까먹징.... 헉 )



   $.ajax({
   type : "POST",
   url : "./member_join_logic.php",
   async: false,
   dataType : "text",
   data : params,
   beforeSend : function(xmlHttpRequest){
   },
   success :  function(msg) {  
    
    var data = eval("(" + msg + ")");
    if(data){
     
     alert("실명인증에 성공하였습니다. 비밀번호 답변을 입력해주세요");
     
     
     document.getElementById("password_hint_area").style.display = "block";
     form.password_hint_value.focus();
     
    }else{
     alert("일치하는 회원정보가 없습니다.");
    }
    },
    error : function(xmlHttpRequest, textStatus, errorThrown){
     alert("회원 실명인증 중 오류가 발생하였습니다. [" + textStatus + "]"); 
    }
   });

시간 되면 display속성에 대해서도 추가 정리를 해야겠다.

에고 어여 코딩하러 가자 고고고씽

반응형
반응형
PHP 에서 JQuery 를 이용하여 Ajax를 이용할때 아래와 같은 방법으로 하는것이 가장 이상적이다.

내가 테스트 한 환경은 다음과 같다

WAS : euc-kr
DB : Mysql euc-kr
환경이다.


1. Jquery 를 이용하여 Ajax호출한다.
   ( 단 한글데이터의 경우 encodeURIComponent를 이용하여 UTF-8 로 인코딩 시켜야 한다. )


  params = "mode=getMember";
  params += "&user_id=" + form.pass_id.value;
  params += "&name=" + encodeURIComponent(form.pass_name.value); // (1) UTF-8로 인코딩한다.
  params += "&reg_num1=" + form.pass_regnum1.value;
  params += "&reg_num2=" + form.pass_regnum2.value;
  
  $.ajax({
   type : "POST",
   url : "./member_join_logic.php",
   async: false,
   dataType : "text",
   data : params,
   beforeSend : function(xmlHttpRequest){
   },
   success :  function(msg) {  
    
    var data = eval("(" + msg + ")");

    if(data){
     alert(data[0].NAME); // (4) 결과값을 출력한다.
    }else{
     alert("일치하는 회원정보가 없습니다.");
    }
    },
    error : function(xmlHttpRequest, textStatus, errorThrown){
     alert("회원 실명인증 중 오류가 발생하였습니다. [" + textStatus + "]"); 
    }
   });



2. Mysql Data를 조회한다.
   ( 조회시 한글 파라미터 값은 별도로 euc-kr로 다시 인코딩 시켜서 맵핑시킨다. )


3. 결과값을 요청한 페이지로 json_encode 함수를 이용하여 리턴시킨다.


   $SQL  = " SELECT * FROM testDB WHERE 1=1 ";
   if($user_id){ $SQL .= " AND user_id ='".$user_id."' "; }
   if($name){ $SQL .= " AND name ='".decode_cp949($name)."' "; } // (2) EUC-KR로 인코딩하여 DB에 맵핑한다.
   if($reg_num1){ $SQL .= " AND reg_num1 ='".$reg_num1."' "; }
   if($reg_num2){ $SQL .= " AND reg_num2 = sha1('".$reg_num2."') "; }
   
   $result = mysql_query($SQL);

   
   
     while ($row = mysql_fetch_assoc($result)) {         
          for ($i=0; $i < mysql_num_fields($result); $i++) {
              $info = mysql_fetch_field($result, $i);
      $row[$info->name] = decode_utf8($row[$info->name]); // (3) 결과값을 다시 UTF-8로 인코딩한다.
          }
          $rows[] = $row;
       }
     
       echo json_encode($rows); // JSON 으로 리턴한다.


[ 참조 ]
위 예제에서 사용한 인코딩 함수는 아래와 같다.

  /**
 * UTF-8 => CP949 로 디코딩 Function
 */
 function decode_cp949($data){
  return iconv("UTF-8", "CP949", rawurldecode($data)); 
 }
 
 /**
 * CP949 => UTF-8 로 디코딩 Function
 */
 function decode_utf8($data){
  return iconv("CP949", "UTF-8", rawurldecode($data)); 
 }



4. 최초 요청받은 페이지에서는 받은 값을 출력한다.

위 과정처럼 하면 한글 데이터도 정상적으로 DB와 통신 가능하다.

이제 삽질은 제발 그만하자 흑흑흑....

이상 JQuery를 이용하여 PHP에서 ajax통신시 한글의 문제점 해결방법이다.

반응형

'Program > PHP' 카테고리의 다른 글

[ PHP 파라미터 출력하여 알아보는 방법 ]  (0) 2011.05.30
[ PHP 에서 DB결과 처음포인터 위치하기 ]  (0) 2010.08.28
[ PHP E-mail 전송 ]  (6) 2010.07.03
PHP Excel Download Module  (21) 2010.06.22
[ PHP5 공통모듈 ]  (0) 2010.06.10
반응형


[ GRANT 명령어를 이용 ]

[1]. 사용자 추가 후 모든권한 부여 방법

GRANT all privileges on test.* to test@localhost identified by 'testpassword';

GRANT all privileges on DB명.* to 사용자명@localhost identified by '비밀번호';



[2] 특정 테이블에 부분권한부여
GRANT SELECT,UPDATE,DELETE on kims.kimson_admin to artinpost@localhost



*** 만약에 이렇게 해도 적용이 되지 않는다면 ***

binding IP ADDRESS가 할당되어있어서 이런것이다.
/etc/mysql/my.cnf 파일을 열어서 다음 사항을 주석처리하자.

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1  ==> #bind-address = 127.0.0.1 (요렇게 주석처리해주자)
# 

 

반응형

'DB > Maria & Mysql' 카테고리의 다른 글

[ WINDOWS OS 에서 MYSQL5.X ROOT 비밀번호 분실]  (0) 2011.01.04
MYSQL Tinyint(1) 의 의미  (2) 2010.07.27
[ MYSQL 유용한 함수 ]  (0) 2010.07.09
[Mysql Paging Query]  (3) 2010.07.02
Mysql Character Set 변경방법  (0) 2010.06.16
반응형

[1] 여러 문자열을 검색하여 특정 문자열 패턴을 치환

$ find ./ -name "*.php" -exec perl -pi -e 's/aaa/bbb/g' {} \;
$ find ./ -name "*.html" -exec perl -pi -e 's/aaa/bbb/g' {} \;


[2] 특정폴더의 용량 확인하기

$ du -h --max-depth=1


[3] 현재 열려있는 Port의 프로그램 확인

$ netstat -lnp

[4] Linux에 Path 추가방법

export set MAVEN_HOME=/cygdrive/d/AnyFramework/apache-maven-3.0.1
PATH=${PATH}:${MAVEN_HOME}/bin

반응형

+ Recent posts