$write_table이 작동 안 되는 이유
본문
아래 코드에서
<?php
include_once('./_common.php');
$wr_id = $_GET['wr_id'];
$sql = "SELECT wr_good, wr_nogood FROM {$write_table} WHERE wr_id = '$wr_id'";
$result = sql_fetch($sql);
echo json_encode($result);
?>
{$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);
아래 코드에서<==이 코드가 있는 화일에 get이든 post든 bo_table 값을 넘겨주면
common.php에서 $write_table을 만듭니다
넘겨받은 bo_table 값이 없으면 $write_table 값을 만들 수 없습니다
그리고 $wr_id = $_GET['wr_id']; <==이건 필요 없는 코드 입니다
get이든 post든 common.php에서 그냥 $wr_id로 바로 사용할 수 있게 만들어 줍니다
$bo_table = $_GET['bo_table']; 하면 될건데요
$write_table = get_write_table_name($bo_table); 이거 일거에요
common.php 파일을 열어보시면 다음과 같습니다.
$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; // 게시판 테이블 전체이름
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'];
}
}
위에서 보시면 아래와 같은 부분이 있습니다.
$write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$bo_table; 란 번수를 받아서 테이블 명을 $write_table 란 변수값으로 할당 하는 부분입니다.
$write_table 에 테이블명이 안만들어진다는건 결국 $bo_table 값의 변수값을 전달 못받았다는 이유가 될수 있습니다.
$bo_table 값을 한번 echo 출력해보시고 정상적으로 $bo_table값으로 나오는지 확인해보시면 문제점을 해결하실수 있을겁니다.
!-->