$write_table이 작동 안 되는 이유 채택완료
아래 코드에서
<?php</p>
<p>include_once('./_common.php');</p>
<p> </p>
<p>$wr_id = $_GET['wr_id'];</p>
<p> </p>
<p>$sql = "SELECT wr_good, wr_nogood FROM {$write_table} WHERE wr_id = '$wr_id'";</p>
<p>$result = sql_fetch($sql);</p>
<p> </p>
<p>echo json_encode($result);</p>
<p>?></p>
<p>
{$write_table}
$write_table
g5_write_free
알림창 띄어서 보니까 $write_table 값은 g5_write_free로 잘 불러오고 있고요 ㅠㅠ
답변 5개
ajax 호출 페이지(board.php->view.skin.php)와, ajax 처리 페이지(get_votes.php)는 별개입니다.
ajax 처리 페이지에서는 $bo_table, $write_table 이 사전에 정의되어 있지 않기 때문에 그렇습니다.
<?php
include_once('./_common.php');
$wr_id = $_GET['wr_id'];
$bo_table = 'free';
$write_table = $g5['write_prefix'] . $bo_table;
$sql = "SELECT wr_good, wr_nogood FROM {$write_table} WHERE wr_id = '{$wr_id}'";
$result = sql_fetch($sql);
echo json_encode($result);
답변에 대한 댓글 3개
url: 'get_votes.php',
type: 'GET',
data: { wr_id: wr_id, bo_table : g5_bo_table },
~
식으로 넘겨주고,
get_votes.php 에서
$bo_table = $_GET['bo_table'];
식으로 받아와야 합니다.
댓글을 작성하려면 로그인이 필요합니다.
common.php 파일을 열어보시면 다음과 같습니다.
</p>
<p>$write = array();
$write_table = '';
if ($bo_table) {
$board = get_board_db($bo_table, true);
if (isset($board['bo_table']) && $board['bo_table']) {
set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
$gr_id = $board['gr_id'];
$write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름</p>
<p> if (isset($wr_id) && $wr_id) {
$write = get_write($write_table, $wr_id);
} else if (isset($wr_seo_title) && $wr_seo_title) {
$write = get_content_by_field($write_table, 'bbs', 'wr_seo_title', generate_seo_title($wr_seo_title));
if( isset($write['wr_id']) ){
$wr_id = $write['wr_id'];
}
}
}
// 게시판에서
if (isset($board['bo_select_editor']) && $board['bo_select_editor']){
$config['cf_editor'] = $board['bo_select_editor'];
}
}</p>
<p>
위에서 보시면 아래와 같은 부분이 있습니다.
$write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$bo_table; 란 번수를 받아서 테이블 명을 $write_table 란 변수값으로 할당 하는 부분입니다.
$write_table 에 테이블명이 안만들어진다는건 결국 $bo_table 값의 변수값을 전달 못받았다는 이유가 될수 있습니다.
$bo_table 값을 한번 echo 출력해보시고 정상적으로 $bo_table값으로 나오는지 확인해보시면 문제점을 해결하실수 있을겁니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
아래 코드에서<==이 코드가 있는 화일에 get이든 post든 bo_table 값을 넘겨주면
common.php에서 $write_table을 만듭니다
넘겨받은 bo_table 값이 없으면 $write_table 값을 만들 수 없습니다
그리고 $wr_id = $_GET['wr_id']; <==이건 필요 없는 코드 입니다
get이든 post든 common.php에서 그냥 $wr_id로 바로 사용할 수 있게 만들어 줍니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그리고 include_once('./_common.php'); 코드가 있어서 자동으로 $write_table값이 불러와지는 거 아닌가요? common.php에 $write_table 값을 정의하는 함수가 있는 걸로 알아서요.
귀찮게 해서 죄송합니닷 ㅠㅠ