추천/비추천 good.php의 $good의 변수 선언은 언제 어디서? > 그누4 질문답변

그누4 질문답변

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

추천/비추천 good.php의 $good의 변수 선언은 언제 어디서? 정보

추천/비추천 good.php의 $good의 변수 선언은 언제 어디서?

본문

같은 내용을 이전에 여러번 질문을 올렸는데 제가 기초 개념이 약해서 표현을 잘못하는 바람에 답변들이 조금씩 비껴갔네요.

게시판 뷰페이지에서 '추천' 또는 '비추천' 박스를 클릭하면  해당 값 'good' 또는 'nogood'이 $good에 대입되는 것 같은데요, $good이 이전에 선언되지도 않았는데 어떻게 거기에 값이 대입이 되느냐는 것입니다.
보통 db의 테이블과 그 필드명들이 배열로 php로 오면서 필드명들이 변수화 하는 과정이 있고, html의 input나 select에 name과 value있으면서 name이 변수화 하는 건 보았습니다.

그런데  $good의 경우는 db(g4_config, g4_board, g4_write_[테이블], g4_board_good,)의 어느 곳에도 두 값(good/nogood)을 가질수 있는 'good'이라는 필드명으로도 없고 (bg_flag로는 있는데 여기는 이 후에 그 값을 받는 곳임), 'good'의 name으로도 없고, 아니면 임시 변수로 선언한 데도 안 보입니다.
요는 다른 화일 어느 곳에 정의되어 있는 것을 제가 찾지 못해서 인지, 아니면 저의 변수에 대한 개념이 잘못된 것인지요. 만약에 $good을 다른 이름, 가령 $hood, $god로 고쳐 넣으면 에러가 납니까? (이거 끝내고 직접 해보자)

댓글 전체

$good값이 'good', 'nogood'으로 넘어와서 g4_board_good 테이블에 게시판 필드값과 게시판 게시물값으로 bg_flag에 값이 good, 또는 nogood 이라는 이름으로 저장되어 나중에 갯수로 불러오는것입니다.
위 답변이 조그 빗나가셨는데 가령 good.php내의 변수 $good을 $hood로 모두 바꿔 놓고 실행하면 안되는데 $good로 해 놔야만 실행되는 그 이유를 묻는 것입니다.
다시 말하면 'good'이나 'nogood'값이 어떻게 해서 $good라는 이름의 변수에만 들어 가느냐 하는 것입니다. 임의 변수명 $hood에는 안 들어 가면서요.
그것은 gnuboard내 화일 어딘가에 $good을 미리 정의해 놓은 것이 있다는 게 아닐까요?
추천 비추천 클릭을 할때 good라는 변수로 값을 넘겨주기때문에 다른변수를 쓰면 안되는겁니다. 나머지는  프리자인님 댓글 내용대로입니다.
추천 비추천 (good) 버튼을 그대로 쓰는 것이 아니라,  이것은 그대로 두고 옆에 투표 테이블 (vote)을 따로 만들었을 경우 입니다. 추천/비추천은 만들어진 과정을 응용만 했습니다.
무얼하려는지 이전 질문을 보니 5개의 투표항목을 선택하면 선택된 항목을 저장하게 하려는 것이 목적이군요
항목이 2개가 아닌 5개나 되기 때문에 추천/비추천 벙법으로 하는 것이 아닙니다
<form name='votefrm' action='vote.php' method='post'>
<input type='radio' name='vote' value='1'>아주잘함
<input type='radio' name='vote' value='2'>잘함
<input type='radio' name='vote' value='3'>보통
<input type='radio' name='vote' value='4'>못함
<input type='radio' name='vote' value='5'>아주못함
</form>
이런 형식으로 만들면  vote.php에서 전송 받는 값은
$myselect= $_POST[vote]; 가 됩니다. 이 값으로 처리하면 됩니다
감사합니다. 구현만이 목적이라면 위 방법이 더 간단하군요.

그런데 지금은 개념 정립을 위해 이 문제를 제기한 것이니까 그 쪽으로 더 파겠습니다.
선택항목이 2개라서 되고 5개이기 때문에 안된다는 것에는 얼른 수긍이 안가네요.
그렇다면 추천/비추천에 한가지 더 중립이라는 항목을 추가하여 선택을 3가지로 한다면 안될까요? 물론 환경설정부터 시작해서, 게시판환경 설정, db필드 삽입등 복잡한 여러 과정에 모두 완벽히 update한다는 가정에서요
추천/비추천 처럼 만들었는데 안된다면 그 코드를 봐야 무엇이 문제인지 알 수 있겠습니다만
개념 정립을 위해서라니까 설명을 덧붙여 보겟습니다
<a href='<?=$g4[bbs_path]?>/vote.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&good=good'>잘함</a>
<a href='<?=$g4[bbs_path]?>/vote.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&good=nogood'>못함</a>
<a href='<?=$g4[bbs_path]?>/vote.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&good=ggg'>보통</a>
추천/비추천은 이런 형태로 값을 넘겨줍니다
보시다시피 링크를 일일이 만들어 주어야 하기때문에 항목이 많은 경우에는 안된다는 것이 아니라 위 처럼 form으로 값을 넘기는 것이 편리하다는 겁니다

vote.php에서 echo $_GET[good]; 하면 클릭한 부분의 값이 출력 됩니다
아직도 이해가 안되나요?
제 문제는
<a href='<?=$g4[bbs_path]?>/vote.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>&good=ggg'>보통</a>에서 &good=ggg가 아니라 &vote=ggg가 안되는 것이므로 왜 &good=는 되고 &vote=는 안되느냐가 질문의 핵심 포인트입니다.
예를 들어 정부에서 서민 복지용으로 무상 양곡표를 준다합시다. good.php 집의 $good는 그 대상자로 등록되어 있어서 인지 ($_GET[good]가 먹힘) 설사 집이사를 good.php에서 vote.php로 이사해도 여전히 표를 받습니다. 그런데 새 집 짓고 이사 온 vote.php 집의 $vote는 어떻게 하면 표를 받을 수 있느냐하는 것이지요.
설명이 난해하니까 따로 질문을 올린 곳에서 코드를 잘 봐 주시기를 부탁드립니다.
미리 정의가 되어 있어도 다시 값을 정의하면 나중에 만든 정의값으로 처리가 됩니다.
말그대료 $good갑을 $hood으로 정상적으로 모두 바꾸었다면 처리되야 맞는것입니다.

오류 메세지가 없으니 뭐라 말씀들 못드리겠습니다.
어디서 나는지 알려주시면 답변드리겠습니다.
$hood로 정상적으로 모두 바꾼다는 의미가 good.php안의 $good만이 아니고 전과정 (환경설정, db 필드 추가, 관련 php 화일 update등)을 고친다는 뜻으로 이해하겠습니다.
그런데 바로 그렇게 했는데도 안되는 현상이 생겼습니다. 즉 위 '균이'님이 알아 내신 것처럼 5개 투표 항목을 만들기 위해 vote.php 를 만들고 또한 전과정을 good과 똑같이 해 보았습니다. 그런데 투표 테이블에서는 답변 선택 클릭시 vote.php로 값을 넘겨 주지 않습니다.
(에러 메세지나 경고창도 안뜨고 $sql도 실행이 안됨). 그래서 잘 되는 변수 $good의 되는 이유를 밝히려 했던 것입니다.
결국은 전과정을 다시 훑어 보고 오타나 문법에러등을 다시 체크해야 겠네요.
전 과정 중 어느 한 곳에서 에러가 났던가, 저의 변수에 대한 기초 지식 부족때문으로 보이네요.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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