스팸코드 혹은 자동가입 방지 깨지시는분...중에... 정보
스팸코드 혹은 자동가입 방지 깨지시는분...중에...본문
혹시...아래 랜덤으로 게시물 추출 하는 코드를 extend 폴더에 만들어서 놓으신 이후가 아니신지요?
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=11019&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%B7%A3%B4%FD+%C3%D6%BD%C5%B1%DB&sop=and
본인같은경우, 코드를 파일을 만들어서 extend 폴더에 넣고 실행하니 랜덤으로 게시물은 정상적으로 불러왔으나, 스팸코드 숫자가 다 엑박이 되었습니다.
그래서 latest.lib.php 파일에 직접 추가를 하였습니다.
참고하십시오.
이놈을 만들어서..."extend" 폴더에 넣고 사용을 할려고 보니...
분명 랜덤으로 게시물은 잘 작동하였습니다.
문제는 스팸코드가 글자가 깨지더군요!!
그래서 이놈을 제거 하니, 다시 정상으로 돌아왔습니다.
그래서 아래처럼 해보았습니다.
/lib/lastest.lib.php 파일을 수정에 추가하였습니다. 랜덤부분만...
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
//$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
// 위의 코드 보다 속도가 빠름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
<?
if (!defined('_GNUBOARD_')) exit;
---------------------- 여기부터 추가한 사항 ----------------------------
// 최신글 랜덤 추출
function latest_rand($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="") {
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by rand() desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
이렇게 해서 불러오는 형식은 위에 표기되어 있는 데로 하니, 스팸코드가 깨지지 않더군요!!
2