<?php // (2024.12.27, 차재복, Cha Jae Bok, http://www.ktword.co.kr)
# 세션 설정
// 세션 스타트 (매 웹페이지 마다 필요)
session_start();
// 세션 변수에 따른 사용자 타입 설정 ('일반사용자' or '테스트편집자' or '관리편집자')
$_SESSION['user_type'] = ( empty($_SESSION['user_name']) ? '일반사용자' : $_SESSION['user_name'] );
# db 연결 및 html 헤더부 (db 접속, title 선언, utf-8 선언, 모바일 셋팅) ---------------------------------------
include_once "../base_utils/config.php";
# css -----------------------------------------------------------------------------------------------
// echo "<link rel='stylesheet' type='text/css' href='srch.css' />";
echo "<style>
body, a, span { font-size: 13px; }
a { text-decoration:none; }
</style>";
# 전달 파라미터 설정
// (해킹방어) 긴 쿼리 스트링이면 무조건 거부
if (strlen($_SERVER['QUERY_STRING'])>140) exit;
// word 번호
$no = ( isset($_REQUEST['m_temp1']) ? $_REQUEST['m_temp1'] : ( isset($_REQUEST['no']) ? $_REQUEST['no'] : null ) );
// 분류 id
$id = $_REQUEST['id'];
// 검색어
$sh = ( isset($_REQUEST['m_search']) ? $_REQUEST['m_search'] : ( isset($_REQUEST['sh']) ? $_REQUEST['sh'] : null ) );
// 해킹방어
if (strtolower($sh) !== 'c++')
$sh = urldecode($sh); // url decode
$sh = strip_tags($sh); // tag 제거
$sh = mb_substr(trim($sh),0,40,'utf-8'); // 좌 우 공백 제거 및 글자수 제한
$sh = str_replace(array(' ','\''),array(' ',' '),$sh); // 연속 공백 제거
$sh = str_ireplace('union all',' ',$sh); // union all 제거
// 요청 페이지 번호
$cur_page = $_GET['p'];
if ( !empty($cur_page) and !is_numeric($cur_page) ) exit; // (해킹방어) 요청 페이지 번호가 수치가 아니면 거부
if ( empty($cur_page) ) $cur_page = 1; // 요청 페이지 번호 초기화
// 첫 글자 검색 여부
$is_1st_char = $_REQUEST['m_first_letter'];
# 최상단 header top 보이기
// 홈페이지 안내
echo "[<a href='/index.php'>정보통신기술용어해설</a>]";
// 현재의 사용 db, 사용자명 출력
// echo " (사용 db명 : ".DB_NAME.", 사용자 : {$_SESSION['user_type']})";
// 검색 Form (상단)
echo "<form action='../search/srch.php' method='post' style='float:right;margin:3px;'>"; //display:inline-block;
echo "<input type='text' name='sh' size='18'>";
echo "<button type='submit' formaction='../search/srch.php'>검색</button>";
echo "</form>";
// 구분선
echo "<hr style='clear:both;'>";
# (검색 실행 및 결과 보여주기) 함수 호출
// 각종 유틸리티 함수 포함
include_once "../search/srch_utils.php"; // f_query(), alphabet_order_show(), srch_bunryu() 함수 등 정의됨
include_once "../search/srch_page_utils.php"; // page_info(), srch_page_display() 함수 등 정의됨
include_once "../search/srch_display.php"; // srch_display() 함수 정의됨
include_once "../paging/paging_utils.php"; // page_info(), page_display(), total_records() 함수 등 정의됨
// 화면 출력
if ($sh!=null) { // 검색어 있으면
// 전체 레코드 수 계산
$query = f_query($sh, array('is_1st_char'=>$is_1st_char, 'query_type'=>'count') ); // 전체 레코드 수 계산을 위한 쿼리문
$total_records = total_records ($query, $dbi);
// 페이지 정보 함수 호출을 위한 매개변수 배열화
$page_info_vars = array (
'sh' => $sh, // 검색어
'total_records' => $total_records, // 전체 레코드 수
'cur_page' => $cur_page, // 현재 페이지 번호
'page_records' => 10 // 페이지 당 출력 레코드 수
);
// 페이지 정보 함수 호출
$page_info = page_info ( $page_info_vars );
echo "<br><br>";
// 검색된 것이 있을 경우에, 화면 표출
if ($total_records > 0) {
// 페이지 이동 안내 (쿼리 설정)
$url_query = ( !empty($sh) ? "sh=".urlencode($sh) : "");
$url_query .= ( $is_1st_char==0 ? "" : "&m_first_letter=1" );
// 페이지 이동 안내 (상단)
page_display ($cur_page, $page_info['total_pages'], '?'.$url_query.'&');
echo "<br><br>";
// 검색된 결과 리스트 보여주기
srch_display($sh, $cur_page, $page_info, $is_1st_char, $dbi); // srch_display.php
// 페이지 이동 안내 (하단)
echo "<br>";
page_display ($cur_page, $page_info['total_pages'], '?'.$url_query.'&');
} else {
echo "검색 실패 ! (검색어 : `$sh`) <br><br>";
echo "<script type='text/javascript' src='/test/paging/word_choice.js' charset='UTF-8'></script>";
include_once "../base_utils/common_utils.php";
alphabet_choice_v2(2); // common_utils.php
/*
$pre_link="<a href='../search/srch.php?'";
alphabet_order_show($pre_link);
*/
}
echo "<br>";
} else {
echo "<br><br>'검색어'가 주어지지 않음<br><br><br>";
}
// 구분선
echo "<hr style='clear:both;'>";
// 검색 Form (하단)
echo "<form action='../search/srch.php' method='post' style='margin:3px;'>"; //display:inline-block;
echo "<input type='text' name='sh' size='18'>";
echo "<button type='submit' formaction='../search/srch.php'>검색</button>";
echo "</form>";
# 저작권
echo "<hr style='clear:both;'>";
include_once "../base_utils/copyright.php";
# 편집 알림
$file_name = "../../cjb/private_cjb.php";
if (file_exists($file_name)) {
include_once $file_name;
copyright4index($dbi);
}
# (종합관리자용)
$file_name = "../../cjb/manager_menu_foot.php";
if (file_exists($file_name) and $_SESSION['user_type']=='종합관리자') {
echo "<br>" ."\n";
include $file_name;
}
# 자바스크립트 로드
// jquery api 원본 다운로드
echo "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script>";
echo "<script type='text/javascript' src='../base_utils/common_utils.js'></script>";
echo "<script type='text/javascript' src='../navigation/short_navi.js'></script>"; // navigation용 메뉴 지원 함수들
echo "<script type='text/javascript' src='./srch.js'></script>"; // load 이벤트
# 통계처리 요청 (stat_page)
include_once "../base_utils/stat_utils.php";
if ($_REQUEST['parm']=='onedrive') {
html_access('onedrive',$dbi);
} else {
html_access('srch.php',$dbi,'',$sh);
}
?>
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"