특정항목을 패스워드 입력하면 보이게 하는 방법? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

특정항목을 패스워드 입력하면 보이게 하는 방법? 정보

특정항목을 패스워드 입력하면 보이게 하는 방법?

본문

<운영환경>
 OS  : WinXP SP2
 DB  : RWAPC Server 1.0
GNU : 큐브리드용 4.21.02
-----------------------------------
안녕하세요?
비회원제 쇼핑몰을 만들어보고 있습니다.

주문할 때 비밀번호를 필수입력으로 하고 주문사항 변동시 패스워드가 일치해야
수정이 가능하도록 하는 것은 성공했는데요.

문제는 주문내역을 확인해주는 뷰페이지를 만들다 보니까
물품 발송시 관리자가 입력한 운송장 번호 등은 개인정보 보호차원에서 암호를 입력해야만
볼 수 있도록 하려고 합니다.
(무조건 비밀글 사용으로하니 확인내역을 보려할 때도 패스워드를 입력해야 하니까
불편해서 비밀글은 사용하지 않고있습니다.)

그래서 view.skin.php파일에 운송장번호 항목을 다음과 같이 하였는데요.

----------- view.skin.php ---------------------------
<tr>
<td style='padding-left:10px; height:25px;'>운송장번호</td>
<td>
<?
if ($is_admin) echo "$view[wr_13]"; // 관리자라면 패스워드를 묻지 않고 바로 운송장번호 표시
            else echo "신청서암호:<input type=password maxlength=8 size=8 name=inputpw4sendnum itemname='신청서암호'><a onclick='CheckPW();' style='cursor:pointer;'>확인</a>"; // 고객이면 패스워드를 물음
?>
<script language="javascript">
<!-- 암호입력후 확인버튼 누를 때
function CheckPW() {
    var D = document.all;
    alert("입력된암호 : "+D.inputpw4sendnum.value);

    var convertedpw = "<?=sql_password(?>"+D.inputpw4sendnum.value+"<?)?>";
    alert("변환된암호 : "+convertedpw);
}
//-->
</script>
</td>
</tr>
-------------------------------------------------------------

password.php와 password_check.php, password.skin.php파일을 열고
흐름을 분석해보다가 암호를 비교하는 부분에서 sql_password()함수로
DB에 저장된 암호값과 비교하는 과정이 있더라구요.

뷰페이지에서 운송장번호를 보기위해 입력한 암호를 변환하여 자바스크립트내에서
DB의 값과 비교를 하고 일치하면 신청서암호입력하는 그 자리에 운송장번호가 표시되게
하고 싶습니다.

비교구문 넣기 전에 alert으로 값을 확인해 보았는데 위와 같이하면 오류가 발생합니다.
Parse error: syntax error, unexpected ';', expecting ')' in D:\경로\skin\board\Order\view.skin.php on line 204

싱글쿼테이션, 더블쿼테이션, 역슬레시, 괄호, 세미콜론, 스페이스바 등으로 조금씩 변형해 봤는데
마찬가지였구요, 테스트 과정에서

    var convertedpw = "<?=sql_password(?>"+D.inputpw4sendnum.value+"<?)?>";

이 부분을

    var convertedpw = "<?=sql_password(1)?>";

이렇게 숫자로 바로 입력해보니 '1'에대한 변환된 암호코드는 나타납니다.

인터넷을 검색해보니 PHP는 JAVA와 달리 서버랭귀지로 자바의 변수를 받지 못한다는 얘기가
있던데 그에대한 대처방안으로 <input type='hidden'>을 이용하거나 <form action="">을
이용하는 것인가? 또 페이지 이동이 일어나야 변수처리를 할 수 있다는 것들이나...
<form>의 method에는 post랑 get이 있다는 것과 알아가면 알아갈수록 어렵네요.
확실하게 이해하지 못한 상태에서 짐작으로 이것저것 시도해봤는데 역시 실패만ㅠㅠ

암호입력후 뷰페이지 자신을 다시 보여주는 과정에서 입력한 암호가 일치하면 내용을 보여주면
될 것 같은데 계속 실패중입니다.

질문게시판에 '패스워드'와 '비밀글'로 검색을 해보아도 힌트를 얻지 못하고 있고
인터넷 검색엔진을 들여다 봐도 머리만 점점 더 복잡해 집니다. @_@

코딩의 수정은 가능한 SKIN에서만 이루어지면 좋구요(약간의 중복이라도 괜찮습니다.)
흐름파악이 용이한 방법이면 좋겠습니다.
이틀째 씻지도 못하고 헤메다가 조심스레 질문을 드려봅니다.

댓글 전체

결국 이번에도 자문자답 합니다. ㅠㅠ

action="<?=$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']?>"

을 이용하여 다시 페이지가 열릴 때 입력한암호를 비교하여 성공했습니다.
저렇게 하니 자바스크립트까지 갈 필요없이 PHP에서 가능하네요...
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT