그누보드 $w 변수관련 질문.
본문
안녕하세요.
소스중 간혹
$w == 'd'
$w == 'u'
$w == ''
이런 코드가 있는데 $w 변수가 뭐지? $w 변수에 값을 준곳이 없는데 이건 뭐지?
해서 인터넷에서 검색해 글을 읽어보니
상태별 코드 변수라고
새글 답변 코맨트 업데이트 뭐 이런경우를 상태별로 ... 그다음 뭐라고 하는지 이해불가.....
라고 하는데
$w 의 변수가 정의된 내용을 볼수 있는 파일이 어떤파일 인가요?
답변 2
common.php에
if (isset($_REQUEST['w'])) {
여기에 있습니다.
$_REQUEST 라는것이 해당 페이지의 form의 post 형식에서 가져오는 $_POST와 주소(url)에서 값을 가져오는 $_GET이 합쳐진것인데 이걸 이용해서 변수가 만들어집니다.
예를 들어 글 수정 링크를 만들때 주소창에 w=u 가 붙게 되는데 해당값을 $_GET의 속성을 가진 $_REQUEST로 가져 오면
$w == 'u' 라는 조건을 사용 할수 있게 됩니다.
그런데 글쓰기 할때는 주소에 w='' 이런식으로 주소가 붙지 않죠
글쓰기는 해당 스킨의 write.skin을 보면
처음에 <form>에 보면
<input type="hidden" name="w" value="<?php echo $w ?>">
이게 있습니다.
이걸 $_REQUEST의 _$POST속성을 이용해 $w 값을 가져올겁니다.
그래서 글쓰기때는 위에 value 값이 없는 상태이기 때문에 $w == ''라는 조건이 만들어지게 되는걸로 알고있습니다.
제 생각대로 쓰긴한건데 틀릴수도 있습니다.
관리자 페이지의 $w와 유저 페이지의 $w는 차이가 있습니다.
유저 페이지에서의 $w는 그냥 페이지 내에서의 처리를 위한 변수값으로만 사용됩니다. 업데이트를 위해 u를 넘긴다던가, 삭제를 위해 d를 넘기는 방식이죠.
관리자 페이지에서는 최고관리자를 제외한 일반 관리자들의 페이지별 권한 확인을 위한 용도입니다. [관리권한설정] 페이지에서 설정된 권한에 따라 접근 여부가 설정되면 각 페이지별로 접근 권한이 있는지 auth_check 함수를 통해 확인하는 방식이죠.