001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097098099100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
<?php // (2022.11.23, 차재복, 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); // 페이지 이동 안내 (하단) echo "<br>"; page_display ($cur_page, $page_info['total_pages'], '?'.$url_query.'&'); } else { echo "검색 실패 ! <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"; # 자바스크립트 로드 // 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 "../base_utils/stat_utils.php"; if ($_REQUEST['parm']=='onedrive') { html_access('onedrive',$dbi); } else { html_access('srch.php',$dbi); } ?>