001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097098099100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
<?php // (2021.8.4, 차재복, 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"; # 전달 매개변수 // 용어해설 번호 $no = $_REQUEST['no']; if ( isset($_REQUEST[no]) and !empty($no) and !is_numeric($no) or $no<0 ) exit; // 해킹방지 (수치>0) // 머리글,바닥글 표출 유무 $bare = $_REQUEST[bare]; # php 함수 include include "./edit_display.php"; include "../edit/edit_utils.php"; include "../search/srch_utils.php"; # css 스타일링 if (empty($bare)) echo "<link rel='stylesheet' href='./edit.css' type='text/css'>"; # 자바스크립트 전역변수 처리 // (PHP => Javascript : 인수 전달) user_type 등을 자바스크립트 전역변수로 전달 $global = ( isset($_SESSION['user_name']) ? 1 : 0 ); echo "<script>"; echo "var globals = { 'user_type' : {$global}, 'edit_win' : '{$edit_win}' };"; // user_type : (<1 : '일반사용자 0') or (>=1 : '테스트편집자 1' or '정식편집자 2' or '종합관리자 3') echo "</script>"; # 자바스크립트 // common_utils.js 호출 echo "<script type='text/javascript' src='../base_utils/common_utils.js' charset='UTF-8'></script>"; // edit.js, edit_embed.js 호출 echo "<script type='text/javascript' src='./edit.js' charset='UTF-8'></script>"; echo "<script type='text/javascript' src='./edit_embed.js' charset='UTF-8'></script>"; // echo "<script type='text/javascript' src='../paging/word_choice.js' charset='UTF-8'></script>"; // MathJax include_once "../base_utils/mathjax_config.php"; // navigation용 메뉴 지원 함수들 echo "<script type='text/javascript' src='../navigation/short_navi.js'></script>"; // // echo "<script type='text/javascript' src='./view.js'></script>"; // load 이벤트 # 스타일 echo "<style> * { font-size:13px; } #pure_text .hide { display:none; } </style>"; # 상단 제목줄 if (empty($bare)) { // 헤더부 출력 (사이트명, 현재 페이지 타이틀명, 현재의 사용 db, 사용자명 출력, 테스트 편집자 로그인, 검색) $title = " 용어해설 편집 (개선중) ... "; include "../base_utils/top_section.php"; // 수평선 echo "<hr style='margin:0'>"."\n"; } # 편집대상 용어 선택 (용어 알파벳순 또는 용어 분류 선택) edit_word_choice ($no, $dbi); // edit_display.php # db 쿼리 및 결과 배열화 // 편집 용어 지정 시 if (!empty($no)) { $fetched_arr = word_query_arr($no, $dbi); // join된 레코드들 중 첫번째 추출하여 $matched 배열에 저장 if (is_array($fetched_arr)) { $matched = $fetched_arr[0]; } else { echo "<br><br>주어진 번호에 해당하는 용어해설 없음 !!!<br><br>"; } } # 중간 편집용 메뉴 및 편집용 화면 표출 if (is_array($matched)) { // 편집용 메뉴 (업데이트 메뉴 버튼 선택) edit_menu ($no); // 편집용 화면 edit_win_display ($edit_win, $no, $matched, $fetched_arr, $dbi); } # 하단 마무리 if (empty($bare)) { echo "<hr>"; // 저작권 include "../base_utils/copyright.php"; } # 통계처리 요청 (stat_page) include "../base_utils/stat_utils.php"; html_access('edit.php',$dbi); ?> <?php function word_query_arr($no, $dbi) { // db 쿼리 $query = "select a.no, yako, full_name, korean, extra_keyword, sujung, a.abbr as orig_text, b.abbr as disp, content, content_orig, c.in_no, c.type, c.origin, c.text, c.code from cjb_dict a left join dict_anchor b on a.no=b.no left join embed c on a.no=c.no where a.no=$no"; $result = mysqli_query($dbi, $query); if (mysqli_errno($dbi)) { echo mysqli_errno($dbi)." : ".mysqli_error($dbi)."\n";} while ($fetched = mysqli_fetch_assoc($result)) { $fetched_arr[] = $fetched; // no, in_no, type, origin, text, code } return $fetched_arr; } ?>