최초 커밋

This commit is contained in:
root
2026-07-23 16:15:57 +09:00
commit c8f5efb6b7
14652 changed files with 4812531 additions and 0 deletions
@@ -0,0 +1,856 @@
<?php
if (!defined('_GNUBOARD_')) define('_GNUBOARD_', true);
// 스킨 안에서 쓰는 상수 최소 셋만 “직접” 정의 (필요시 경로 수정)
if (!defined('G5_URL')) define('G5_URL', '/eng');
if (!defined('G5_BBS_URL')) define('G5_BBS_URL', '/eng/bbs');
if (!defined('G5_IMG_URL')) define('G5_IMG_URL', '/eng/img');
// 로그인 여부 플래그
$isLoggedIn = !empty($_SESSION['user']['userId']);
// ✅ DB 연결
$pdo = new PDO("mysql:host=db;dbname=egbim;charset=utf8mb4", "egbim", "baron3840!!", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
// ✅ EG-BIM (product_code=8) 기준 최신 external_version 가져오기
$stmt = $pdo->prepare("
SELECT external_version
FROM deploy_versions
WHERE product_code = 1
ORDER BY updated_at DESC
LIMIT 1
");
$stmt->execute();
$version = $stmt->fetchColumn() ?: '1.0.0'; // fallback
// ✅ 다운로드 URL 자동 생성
$download_url = "https://release-download.hmac.kr/eg-bim/{$version}/setup_eg-bim_{$version}.exe";
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Q&A 상세보기</title>
<style>
/* (기존 스타일을 여기에 복사) */
</style>
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<!-- 디자인팀 작성 -->
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script type="text/javascript" src="../js/popup.js?v=20260723"></script>
<script type="text/javascript" src="../js/common.js"></script>
<script type="text/javascript" src="../js/index.js"></script>
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<!-- //디자인팀 작성 -->
</head>
<body>
<div class="wrapper">
<!-- Header -->
<?php include_once(__DIR__ . '/../../member/basic/main_header.skin.php'); ?>
<!-- //Header -->
<div class="container faq">
<section class="intro">
<div class="top js__dark">
<h2>Q&A</h2>
<span>EG-BIM Q&As</span>
</div>
<ul class="sub_tab">
<li ><a href="/eng/bbs/faq.php">FAQ</a></li>
<li class="on"><a href="/eng/bbs/descope_qa_list.php">Q&A</a></li>
<li><a href="https://939.co.kr/saman/" target="_blank">Remote Support</a></li>
</ul>
</section>
<span class="sub_tit">Q&A</span>
<div class="contents">
<section class="qa-detail">
<div class="qa-view">
<div class="meta tbl-area">
<!-- <div class="tbl-item status-control">
<?php if (is_qna_admin()): ?>
<form method="post" action="/eng/bbs/descope_qa_status.php" style="display:inline;">
<input type="hidden" name="post_id" value="<?= $post['post_id'] ?>">
<select name="status" onchange="this.form.submit()">
<option value="await" <?= $post['status']==='await'?'selected':'' ?>>답변대기</option>
<option value="review" <?= $post['status']==='review'?'selected':'' ?>>검토중</option>
<option value="done" <?= $post['status']==='done'?'selected':'' ?>>답변완료</option>
</select>
</form>
<?php else: ?>
<div class="status"><?= htmlspecialchars($post['status_label']) ?></div>
<?php endif; ?>
</div>
<div class="tbl-item">
<span class="cate"><?=htmlspecialchars($post['category_label'])?></span>
<p class="tit"><?=htmlspecialchars($post['title'])?></p>
</div> -->
<div class="tbl-item title-row">
<!-- 왼쪽: 카테고리 + 제목 -->
<div class="title-left">
<span class="cate"><?=htmlspecialchars($post['category_label'])?></span>
<span class="tit"><?=htmlspecialchars($post['title'])?></span>
</div>
<!-- 오른쪽: 상태 -->
<div class="title-right">
<?php if (is_qna_admin()): ?>
<form method="post" action="/eng/bbs/descope_qa_status.php">
<input type="hidden" name="post_id" value="<?= $post['post_id'] ?>">
<select name="status" onchange="this.form.submit()" class="status-select status-<?= htmlspecialchars($post['status']) ?>">
<option value="new" <?= $post['status']==='new'?'selected':'' ?>>New</option>
<option value="review" <?= $post['status']==='review'?'selected':'' ?>>Review</option>
<option value="deep" <?= $post['status']==='deep'?'selected':'' ?>>Checking</option>
<option value="patch" <?= $post['status']==='patch'?'selected':'' ?>>Patch</option>
<option value="done" <?= $post['status']==='done'?'selected':'' ?>>Done</option>
</select>
</form>
<?php else: ?>
<div class="status"><?= htmlspecialchars($post['status_label']) ?></div>
<?php endif; ?>
</div>
</div>
<div class="tbl-group user-info">
<div class="tbl-item">
<span>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<?=htmlspecialchars($post['created_at'])?>
</span>
</div>
<div class="tbl-item">
<!-- 글번호 -->
<span class="post">
<i class="fa fa-hashtag" aria-hidden="true"></i>
<?= htmlspecialchars($post['post_id']) ?>
</span>
<?php if ($post['category'] === 'notice'): ?>
<!-- ✅ 공지사항이면 "관리자"만 표시 -->
<span>
<i class="fa fa-user" aria-hidden="true"></i>
관리자
</span>
<?php else: ?>
<!-- 작성자 이메일 -->
<span>
<i class="fa fa-envelope-o" aria-hidden="true"></i>
<?= htmlspecialchars($post['login_id']) ?>
</span>
<!-- 회사 -->
<?php if ((int)$post['is_internal'] === 1 && !empty($post['family_company'])): ?>
<span>
<i class="fa fa-building-o" aria-hidden="true"></i>
<?= htmlspecialchars($post['family_company']) ?>
</span>
<?php elseif (!empty($post['company'])): ?>
<span>
<i class="fa fa-building-o" aria-hidden="true"></i>
<?= htmlspecialchars($post['company']) ?>
</span>
<?php endif; ?>
<!-- 부서 -->
<?php if (!empty($post['department'])): ?>
<span>
<i class="fa fa-sitemap" aria-hidden="true"></i>
<?= htmlspecialchars($post['department']) ?>
</span>
<?php endif; ?>
<!-- 작성자 이름 -->
<span>
<i class="fa fa-user" aria-hidden="true"></i>
<?= htmlspecialchars($post['display_name']) ?>
</span>
<!-- 관리자 전용 -->
<?php if (is_qna_admin()): ?>
<?php if (!empty($post['phone'])): ?>
<span>
<i class="fa fa-phone" aria-hidden="true"></i>
<?= htmlspecialchars($post['phone']) ?>
</span>
<?php endif; ?>
<span>
<i class="fa fa-key" aria-hidden="true"></i>
Q&A : <?= htmlspecialchars($post['post_id']) ?>
</span>
<?php
// ✅ 최신 login_version 가져오기
$loginVersion = null;
$st = $pdo->prepare("
SELECT login_version
FROM user_program_info
WHERE login_id = ?
ORDER BY id DESC
LIMIT 1
");
$st->execute([$post['login_id']]);
$loginVersion = $st->fetchColumn();
?>
<?php if ($loginVersion): ?>
<span>
<i class="fa fa-code-fork" aria-hidden="true"></i>
Ver <?= htmlspecialchars($loginVersion) ?>
</span>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
</div>
</div>
</div>
<div class="content">
<?= $post['content'] ?>
</div>
</div>
<!-- 첨부파일 -->
<?php if (!empty($attachments)): ?>
<div class="attachments" style="margin-top:20px;">
<h3>첨부파일</h3>
<ul>
<?php foreach ($attachments as $file): ?>
<li>
<?php if (!empty($_SESSION['user']['userId'])): ?>
<!-- ✅ 로그인한 경우: 다운로드 가능 -->
<a href="<?= htmlspecialchars($file['save_path']) ?>" download>
<?= htmlspecialchars($file['ori_name']) ?>
</a>
<?php else: ?>
<!-- 🚫 비회원: 이름만 표시 (다운로드 막음) -->
<?= htmlspecialchars($file['ori_name']) ?> <span style="color:#888;"></span>
<?php endif; ?>
<small>
(<?= round($file['file_size'] / 1024, 1) ?> KB,
<?= htmlspecialchars(substr($file['uploaded_at'],0,16)) ?>)
</small>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<div class="btn-group">
<!-- 수정 버튼 (로그인 사용자 == 작성자 인 경우에만) -->
<?php if ($me === $post['login_id']): ?>
<button class="btn btn-save" onclick="location.href='/eng/bbs/descope_qa_write.php?id=<?= $post['post_id'] ?>'">수정</button>
<!-- <button class="btn btn-save" type="button" onclick="confirmDelete(<?= $post['post_id'] ?>)">삭제</button> -->
<button class="btn btn-save" id="btn-delete" data-status="<?= $post['status'] ?>" data-id="<?= $post['post_id'] ?>">삭제</button>
<?php endif; ?>
<!-- <button onclick="history.back()">닫기</button> -->
<button class="btn btn-list" onclick="location.href='/eng/bbs/descope_qa_list.php'">
<i class="fa fa-list" aria-hidden="true"></i> List</button>
</div>
</section>
<script>
$(document).on('click', '#btn-delete', function(e) {
e.preventDefault(); // 링크 이동 막기
const status = $(this).data('status');
const id = $(this).data('id');
if (status === 'review' || status === 'done') {
alert("검토중이거나 답변완료 된 상태에서는 글을 삭제할 수 없습니다.\n관리자에게 문의해 주세요");
return false;
}
if (confirm("정말 삭제하시겠습니까?\n댓글과 첨부파일도 함께 삭제됩니다.")) {
location.href = "/eng/bbs/descope_qa_delete.php?id=" + id;
}
});
// function confirmDelete(pid) {
// if (confirm("정말 이 글을 삭제하시겠습니까?\n댓글과 첨부파일도 함께 삭제됩니다.")) {
// window.location.href = "/eng/bbs/descope_qa_delete.php?id=" + pid;
// }
// }
</script>
<section class="comment-section">
<h4>Comment (<span id="comment-count"><?= count($comments) ?></span>)</h4>
<div class="comment-wrap form-wrap">
<div id="comments" class="comment-list">
<?php foreach ($comments as $c): ?>
<div class="comment" id="comment-<?= $c['comment_id'] ?>">
<div class="comment-body">
<!-- 댓글 내용 -->
<div class="comment-text"><?= nl2br(htmlspecialchars($c['comment_text'])) ?></div>
<!-- 작성자 + 날짜 같은 줄 -->
<div class="comment-meta">
<span class="comment-author"><strong><?= htmlspecialchars($c['user_name']) ?></strong></span>
<span class="comment-date"><small><?= $c['created_at'] ?></small></span>
</div>
</div>
<!-- 수정/삭제 버튼 -->
<div class="comment-actions" style="text-align:right;">
<?php if (!empty($_SESSION['user']['loginIds'][0])): ?>
<?php if ($_SESSION['user']['loginIds'][0] == $c['login_id']): ?>
<!-- 본인 댓글: 수정 + 삭제 -->
<button class="btn-edit" data-id="<?= $c['comment_id'] ?>">Change</button>
<button class="btn-delete" data-id="<?= $c['comment_id'] ?>">Delete</button>
<?php elseif (is_qna_admin()): ?>
<!-- 관리자: 삭제만 -->
<button class="btn-delete" data-id="<?= $c['comment_id'] ?>">Delete</button>
<?php endif; ?>
<?php endif; ?>
</div>
<!-- 수정 모드 textarea (기본 숨김) -->
<div class="comment-edit-box" style="display:none; margin-top:5px;">
<textarea class="comment-edit-input" rows="3"><?= htmlspecialchars($c['comment_text']) ?></textarea>
<div class="comment-edit-actions" style="text-align:right; margin-top:3px;">
<button class="btn-save-edit" data-id="<?= $c['comment_id'] ?>">Save</button>
<button class="btn-cancel-edit">Cancle</button>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<!-- 신규 댓글 입력 -->
<?php if ($isLoggedIn): ?>
<div class="comment-form form-item">
<textarea id="newComment" class="input-text" rows="3" placeholder="Add a comment"></textarea>
<button class="btn-save" id="btnSaveComment">Comments</button>
</div>
<?php else: ?>
<p style="color:#888;">Log in to add a comment.</p>
<?php endif; ?>
</div>
</section>
</div> <!-- contents END -->
</div> <!-- container END -->
<!-- FOOTER -->
<?php include_once(__DIR__ . '/../../member/basic/main_footer.skin.php'); ?>
<!-- //FOOTER -->
</div> <!-- wrapper END -->
<script>
try{
AOS.init();
if (typeof Lenis !== 'undefined') {
const lenis = new Lenis();
lenis.on('scroll', ScrollTrigger.update);
gsap.ticker.add((time)=>{ lenis.raf(time * 1000) });
gsap.ticker.lagSmoothing(0);
window.lenis = lenis;
}
} catch(e){ console.error(e); }
</script>
<script>
//상태 색상 변경 동적 업데이트
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('.status-select').forEach(sel => {
sel.addEventListener('change', function() {
this.className = 'status-select status-' + this.value;
});
});
});
document.getElementById('btnSaveComment').addEventListener('click', async () => {
const txt = document.getElementById('newComment').value.trim();
if (!txt) return alert('댓글을 입력해주세요.');
const res = await fetch('/eng/bbs/descope_qa_comment.php', {
method: 'POST',
credentials: 'include',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({
postId: <?= json_encode($post['post_id']) ?>,
comment: txt
})
});
const json = await res.json();
if (json.status !== 'ok') return alert(json.message);
// ✅ 댓글 DOM 생성 (PHP 출력 구조와 동일하게)
// 신규 댓글 저장 후 DOM 추가
const div = document.createElement('div');
div.className = 'comment';
div.id = "comment-" + json.comment_id;
const safeText = (json.comment_text || '').replace(/\r?\n/g, '<br>');
// 서버에서 isAdmin 내려줬다고 가정
const canDelete = (json.login_id === sessionStorage.getItem("loginId")) || (json.isAdmin === true);
const actions = canDelete ? `
<button class="btn-edit" data-id="${json.comment_id}">수정</button>
<button class="btn-delete" data-id="${json.comment_id}">삭제</button>` : '';
div.innerHTML = `
<div class="comment-body">
<div class="comment-text">${safeText}</div>
<div class="comment-meta">
<span class="comment-author"><strong>${json.user_name || json.login_id}</strong></span>
<span class="comment-date"><small>${json.created_at}</small></span>
</div>
</div>
<div class="comment-actions" style="text-align:right;">
${actions}
</div>
`;
document.getElementById('comments').append(div);
// ✅ 댓글 수 갱신
var countEl = document.getElementById("comment-count");
countEl.textContent = parseInt(countEl.textContent, 10) + 1;
// 입력창 비우기
document.getElementById('newComment').value = '';
});
// 댓글 수정 버튼
$(document).on('click', '.btn-edit', function() {
const id = $(this).data('id');
const $comment = $(this).closest('.comment');
const $text = $comment.find('.comment-text');
const original = $text.text().trim();
// input으로 교체
$text.replaceWith(`<textarea class="edit-input" data-id="${id}" rows="3">${original}</textarea>`);
$(this).text("저장").removeClass("btn-edit").addClass("btn-save-edit").attr("data-id", id);;
});
// 댓글 수정 저장
$(document).on('click', '.btn-save-edit', function() {
const id = $(this).data('id');
const $input = $('.edit-input[data-id="'+id+'"]');
const newText = $input.val().trim();
if (!newText) return alert("내용을 입력하세요");
console.log("update click", id, newText);
$.post("/eng/bbs/descope_qa_comment_update.php",
{ commentId:id, comment:newText },
function(res) {
if (res.status === 'ok') {
alert(res.message || "댓글이 수정되었습니다.");
$input.replaceWith(`<div class="comment-text">${newText}</div>`);
$('.btn-save-edit[data-id="'+id+'"]').text("수정")
.removeClass("btn-save-edit").addClass("btn-edit");
} else {
alert(res.message || "수정 실패");
}
}, "json");
});
document.addEventListener('click', function(e) {
// 수정 버튼 클릭 → textarea 열기
if (e.target.classList.contains('btn-edit')) {
const comment = e.target.closest('.comment');
comment.querySelector('.comment-text').style.display = 'none';
comment.querySelector('.comment-actions').style.display = 'none';
comment.querySelector('.comment-edit-box').style.display = 'block';
}
// 취소 버튼 → 원래 상태로
if (e.target.classList.contains('btn-cancel-edit')) {
const comment = e.target.closest('.comment');
comment.querySelector('.comment-text').style.display = 'inline';
comment.querySelector('.comment-actions').style.display = 'block';
comment.querySelector('.comment-edit-box').style.display = 'none';
}
// 저장 버튼 → AJAX로 수정 요청 (예시)
if (e.target.classList.contains('btn-save-edit')) {
const comment = e.target.closest('.comment');
const id = e.target.dataset.id;
const newText = comment.querySelector('.comment-edit-input').value;
// TODO: AJAX 호출해서 서버 업데이트
console.log("수정 저장:", id, newText);
// UI 갱신
comment.querySelector('.comment-text').textContent = newText;
comment.querySelector('.comment-text').style.display = 'inline';
comment.querySelector('.comment-actions').style.display = 'block';
comment.querySelector('.comment-edit-box').style.display = 'none';
}
});
// 댓글 삭제 버튼
$(document).on("click", ".btn-delete", function () {
if (!confirm("정말 삭제하시겠습니까?")) return;
var commentId = $(this).data("id");
$.ajax({
url: "/eng/bbs/descope_qa_comment_delete.php",
type: "POST",
data: { commentId: commentId },
dataType: "json",
success: function (res) {
if (res.status === "ok") {
// DOM에서도 삭제
$("#comment-" + commentId).fadeOut(300, function () {
$(this).remove();
});
// ✅ 댓글 수 감소
var countEl = $("#comment-count");
var current = parseInt(countEl.text(), 10);
if (current > 0) {
countEl.text(current - 1);
}
alert("댓글이 삭제되었습니다.");
} else {
alert(res.message || "삭제 실패");
}
},
error: function (xhr) {
alert("삭제 요청 에러: " + xhr.responseText);
}
});
});
</script>
<?php
// Q&A 상세 페이지에서는 Descope 로그인에 필요한 최소 팝업만 포함합니다.
$BASE = $_SERVER['DOCUMENT_ROOT'].'/eng/skin/member/basic';
$partials = [
'login.skin.php',
'register.skin.php',
'privacy.skin.php',
'password_lost.skin.php',
];
foreach ($partials as $p) {
$full = $BASE.'/'.$p;
if (file_exists($full)) {
include $full;
echo "<!-- INCLUDED: {$full} -->\n"; // 디버그 표시
} else {
echo "<!-- MISSING: {$full} -->\n"; // 경로 문제 확인용
}
}
?>
</body>
</html>
<script>
$(function(){
// footer family site toggle
$('.family_btn').click(function(e){
e.stopPropagation();
$('.family_list, .family_btn').toggleClass('family_on');
});
$(document).click(function(e){
if(!$(e.target).closest('.family_wrap').length){
$('.family_list, .family_btn').removeClass('family_on');
}
});
});
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//descope 로그인, 로그아웃 js
function updateHeaderMenu() {
var isLoggedIn = !!sessionStorage.getItem("sessionJwt");
// role 체크 예시 (로그인 시 저장해놓은 값)
var isAdmin = sessionStorage.getItem('userRole') === 'super';
if (isLoggedIn) {
$('.my_join2, .my_login2').show();
$('.my_join, .my_login').hide();
// 마이페이지/관리자 메뉴 동적 출력
if (isAdmin) {
$('#my_join2').html("<a href='http://eg-bim.com/eng/adm/index.php' target='_blank'>관리페이지</a>");
} else {
$('#my_join2').html("<a href='javascript:mypage03();'>My Page</a>");
}
} else {
$('.my_join2, .my_login2').hide();
$('.my_join, .my_login').show();
$('#my_join2').html(""); // 혹시모를 내용 초기화
}
}
function descopeLogout() {
fetch('/eng/skin/member/basic/descope_logout.php', {
method: 'POST',
credentials: 'include' // PHPSESSID 쿠키 전송
})
.then(res => {
if (!res.ok) throw new Error('서버 로그아웃 실패');
// 1) 로컬 저장소 정리
// sessionStorage.removeItem("refreshJwt");
// sessionStorage.removeItem("sessionJwt");
// sessionStorage.removeItem("userRole");
// sessionStorage.removeItem("userName");
// sessionStorage.removeItem("loginId");
sessionStorage.clear();
localStorage.clear();
// 2) UI 갱신
updateHeaderMenu();
// 3) 로그인 페이지로 이동
window.location.href = '/eng/index.php';
})
.catch(err => {
console.error(err);
alert('로그아웃 중 오류가 발생했습니다.');
});
}
$(document).ready(function() {
// 기존에 있던 updateHeaderMenu() 호출 뒤에
$('#my_login2 a').off('click').on('click', function(e){
e.preventDefault();
descopeLogout();
});
});
$(document).ready(function() {
updateHeaderMenu();
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
});
//descope login
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
$.ajax({
url : '/eng/skin/member/basic/descope_login.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
dataType : "json",
success : function(res){
if(res.status === "ok") {
// 토큰 저장
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
sessionStorage.setItem("sessionJwt", res.sessionJwt);
// ✅ 사용자 정보 저장
if (res.user) {
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
sessionStorage.setItem("userName", res.user.name || '');
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
sessionStorage.setItem("phone", res.user.phone || '');
}
// ✅ 추가: 관리자 등 정보 저장
if(res.user && res.user.roleNames && res.user.roleNames[0])
sessionStorage.setItem("userRole", res.user.roleNames[0]);
else
sessionStorage.removeItem("userRole");
// ✅ 로그인 후 메뉴 갱신
updateHeaderMenu();
// UI 처리
$('.popup_wrap').hide();
$('body').css('overflow', '');
lenis.start();
// alert('로그인 하셨습니다.');
} else {
alert(res.message || "로그인 실패");
// 🔴 실패 횟수에 따라 안내 배너 교체
if (res.failCount && res.failCount >= 8) {
updateLoginBanner("fail");
}
}
},
error : function(err){
alert(err.statusText || "통신 오류");
}
});
});
// ✅ 배너 교체 함수
function updateLoginBanner(type = "default") {
const $banner = $('#login_notice_banner');
if (!$banner.length) return;
if (type === "default") {
$banner.css({ background: "#063e01ff", color: "#fff" });
$banner.find("strong").text("[로그인 시스템 변경 안내]");
$banner.find("p.left").html(`
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
`);
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
}
if (type === "fail") {
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
$banner.find("strong").text("[로그인 시도 제한 안내]");
$banner.find("p.left").html(`
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
10회 이상 실패 시 계정이 잠금 처리됩니다.
`);
$banner.find("p:last").text("");
}
}
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
// 이지빔 프로그램 회원가입 url 쿼리스트링 파싱 함수
function getQueryString(name) {
const intro = document.querySelector('.intro_wrap');
if (intro) {
intro.style.display = "none";
}
const mainMask = document.querySelector('.main_mask');
if (mainMask) {
mainMask.classList.add('skip');
}
// mainMask.style.aimation = 'none';
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(name);
}
$(document).ready(function() {
const popupParam = getQueryString('popup');
if (popupParam === 'signup') {
console.log('쿼리 감지: signup → 회원가입 팝업 자동 오픈 시도');
$('#pop_agreement').show(); // 팝업 보여주기
// 스크롤 잠금 (사용 중이면)
$('body').css('overflow', 'hidden');
if (typeof lenis !== 'undefined') {
lenis.stop();
}
}
// 팝업 닫기 버튼 이벤트 연결
$('#pop_agreement .btn_close').on('click', function() {
$('#pop_agreement').hide();
$('body').css('overflow', '');
if (typeof lenis !== 'undefined') {
lenis.start();
}
});
});
//이지빔 프로그램 비밀번호 재설정 url 쿼리스트링 파싱 함수
$(document).ready(function() {
const urlParams = new URLSearchParams(window.location.search);
const popup = urlParams.get('popup');
const token = urlParams.get('t');
if (popup === 'pwreset') {
// 팝업 전체 열기
$('#pop_search').show();
$('body').css('overflow', 'hidden');
// 내부 컨텐츠 모두 숨기기
$('#pop_search .popup_contents_wrap').hide();
if (token) {
// 토큰이 있으면 비밀번호 재설정 단계
if (!sessionStorage.getItem('pwreset_shown')) {
$('#password_reset').show();
sessionStorage.setItem('pwreset_shown', '1');
}
} else {
// 토큰이 없으면 아이디 입력 단계 (첫 번째 .popup_contents_wrap)
$('#pop_search .popup_contents_wrap').first().show();
}
}
// 닫기 버튼
$('#pop_search .btn_close').on('click', function() {
$('#pop_search').hide();
$('body').css('overflow', '');
});
});
</script>
+687
View File
@@ -0,0 +1,687 @@
<?php // descope_qa_list.skin.php
// ✅ DB 연결
$pdo = new PDO("mysql:host=db;dbname=egbim;charset=utf8mb4", "egbim", "baron3840!!", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
// ✅ EG-BIM (product_code=8) 기준 최신 external_version 가져오기
$stmt = $pdo->prepare("
SELECT external_version
FROM deploy_versions
WHERE product_code = 1
ORDER BY updated_at DESC
LIMIT 1
");
$stmt->execute();
$version = $stmt->fetchColumn() ?: '1.0.0'; // fallback
// ✅ 다운로드 URL 자동 생성
$download_url = "https://release-download.hmac.kr/eg-bim/{$version}/setup_eg-bim_{$version}.exe";
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Q&A 게시판 리스트</title>
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<!-- 디자인팀 작성 -->
<script src="../js/jquery-3.6.1.min.js" type="text/javascript"></script>
<script src="../js/jquery.mousewheel.min.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script src="../js/popup.js?v=20260723" type="text/javascript"></script>
<script src="../js/common.js" type="text/javascript"></script>
<script src="../js/index.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<!-- //디자인팀 작성 -->
<style>
/* …기존 CSS 그대로… */
</style>
</head>
<body>
<div class="wrapper">
<!-- Header -->
<?php include_once(__DIR__ . '/../../member/basic/main_header.skin.php'); ?>
<!-- //Header -->
<div class="qa-container container faq">
<section class="intro">
<div class="top js__dark">
<h2 data-aos="fade-down" data-aos-duration="1000">Q&amp;A</h2>
<span>EG-BIM Q&As</span>
</div>
<ul class="sub_tab">
<li><a href="/eng/bbs/faq.php">FAQ</a></li>
<li class="on"><a href="/eng/bbs/descope_qa_list.php">Q&A</a></li>
<li><a href="https://939.co.kr/saman/" target="_blank">Remote Support</a></li>
</ul>
</section>
<span class="sub_tit">Q&A</span>
<div class="contents">
<form class="qa-controls" method="get" action="">
<div class="search-wrap">
<div class="qa-filters">
<div class="check-group">
<!-- <strong>구분</strong> -->
<?php
// 선택 여부 유틸
$isChecked = function($v) use ($cats) {
return in_array($v, $cats ?? [], true) ? 'checked' : '';
};
// 아무 것도 선택 안되어 있으면 전체 on
$allOn = empty($cats);
?>
<label><input type="checkbox" name="cat[]" value="all" <?= $allOn ? 'checked' : '' ?>>All</label>
<label><input type="checkbox" name="cat[]" value="general" <?= $isChecked('general') ?>>Other</label>
<label><input type="checkbox" name="cat[]" value="improvement"<?= $isChecked('improvement') ?>>Impr.</label>
<label><input type="checkbox" name="cat[]" value="error" <?= $isChecked('error') ?>>Error</label>
<?php if (is_qna_admin($_SESSION['user']['loginIds'][0] ?? '')): ?>
<label><input type="checkbox" name="cat[]" value="admin" <?= $isChecked('admin') ?>>관리</label>
<?php endif; ?>
</div>
<div class="check-box">
<strong>Writer</strong>
<label><input type="checkbox" name="writer" value="me" <?= $writer==='me' ?'checked':'' ?>>My Posts</label>
</div>
</div>
<div class="qa-search search-box">
<?php if (is_qna_admin($_SESSION['user']['loginIds'][0] ?? '')): ?>
<input type="number" class="qna-id-input" placeholder="Q&A ID">
<button type="button" class="btn-move">이동</button>
<?php endif; ?>
<input type="text" name="q" value="<?= htmlspecialchars($search) ?>" placeholder="Enter keywords for title or content">
<button type="submit" class="btn-search">
<i class="fa fa-search"></i> Search
</button>
</div>
</div>
</form>
<?php
$CAT_LABELS = [
'general' => 'Other',
'improvement' => 'Impr.',
'error' => 'Error',
'notice' => 'Notice',
'admin' => '관리글',
];
?>
<div class="tbl-wrap">
<table>
<colgroup>
<col style="width:5%"><col style="width:7%"><col style="width:12%"><col style="width:12%">
<col style="width:7%"><col style="width:auto"><col style="width:9%"><col style="width:9%">
</colgroup>
<thead>
<tr>
<th>No.</th><th>Category</th><th>Co.</th><th>Dept.</th>
<th>Writer</th><th>Title</th><th>Date</th><th>Status</th>
</tr>
</thead>
<tbody>
<?php
$totalIndex = $totalCount - ($page - 1) * $pageSize;
$idx = 0;
?>
<?php foreach($posts as $row): ?>
<?php
$isNotice = ($row['category'] === 'notice');
$rowNumber = $totalIndex - $idx; // 연속 번호 재계산
?>
<?php $isNotice = ($row['category'] === 'notice'); ?>
<tr class="<?= $isNotice ? 'row-notice' : '' ?>" onclick="location.href='/eng/bbs/descope_qa_detail.php?id=<?= urlencode($row['post_id']) ?>'" style="cursor:pointer;">
<!-- 번호: 공지 or 연속번호 -->
<td><?= $isNotice ? '공지' : $rowNumber ?></td>
<!-- 구분 -->
<td><?= htmlspecialchars($CAT_LABELS[$row['category']] ?? ($row['category'] ?? '')) ?></td>
<!-- 회사 -->
<td><?= htmlspecialchars($row['display_company']) ?></td>
<!-- 부서 -->
<td><?= htmlspecialchars($row['department'] ?? '') ?></td>
<!-- 작성자 -->
<td><?= htmlspecialchars($row['display_name']) ?></td>
<!-- 제목 -->
<td class="left">
<?php if (!empty($row['is_secret'])): ?>
<span style="color:#999">[비밀글]</span>
<?php endif; ?>
<span class="title-text">
<?= htmlspecialchars($row['title']) ?>
</span>
<!-- 댓글 개수 -->
<?php if (!empty($row['comment_count'])): ?>
<span class="badge badge-comment" style="color:#007bff; margin-left:5px;">
<i class="fa fa-commenting-o"></i> <?= $row['comment_count'] ?>
</span>
<?php endif; ?>
<!-- 첨부파일 개수 -->
<?php if (!empty($row['file_count'])): ?>
<span class="badge badge-file" style="color:#28a745; margin-left:5px;">
<i class="fa fa-paperclip"></i> <?= $row['file_count'] ?>
</span>
<?php endif; ?>
</td>
<!-- 등록일 -->
<td><?= htmlspecialchars(substr($row['created_at'],0,10)) ?></td>
<!-- 상태 -->
<td>
<?php if ($row['category'] === 'notice'): ?>
<!-- 공지사항이면 상태값 안 보여줌 -->
<span></span>
<?php else: ?>
<span class="status-<?= htmlspecialchars($row['status']) ?>">
<?= $row['status']==='new' ? 'New'
: ($row['status']==='review' ? 'Review'
: ($row['status']==='deep' ? 'Checking'
: ($row['status']==='patch' ? 'Patch'
: ($row['status']==='done' ? 'Done'
: '')))) ?>
</span>
<?php endif; ?>
</td>
</tr>
<?php $idx++; ?>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php if ($totalPages > 1): ?>
<div class="pagination">
<?php if ($page > 1): ?>
<a href="?<?= http_build_query(array_merge($_GET, ['page'=>$page-1])) ?>" class="prev">이전</a>
<?php else: ?><span class="prev">이전</span><?php endif ?>
<?php
$blockSize = 10;
$currentBlock= ceil($page / $blockSize);
$start = ($currentBlock - 1) * $blockSize + 1;
$end = min($totalPages, $currentBlock * $blockSize);
for ($i = $start; $i <= $end; $i++):
?>
<?php if ($i == $page): ?>
<!-- ✅ 여기! 현재 페이지는 span.current -->
<span class="current"><?= $i ?></span>
<?php else: ?>
<a href="?<?= http_build_query(array_merge($_GET, ['page'=>$i])) ?>"><?= $i ?></a>
<?php endif ?>
<?php endfor ?>
<?php if ($page < $totalPages): ?>
<a href="?<?= http_build_query(array_merge($_GET, ['page'=>$page+1])) ?>" class="next">다음</a>
<?php else: ?><span class="next">다음</span><?php endif ?>
</div>
<?php endif ?>
<div class="btn-group">
<button type="button" class="btn btn-write" onclick="openQaWrite()">
<i class="fa fa-pencil" aria-hidden="true"></i> Create
</button>
</div>
</div><!-- contents END /eng/skin/qa/basic/descope_qa_write.skin.php-->
</div><!-- container END -->
<button class="btn_top js__top topbtn_on" onclick="window.scrollTo(0,0);" style="bottom:60px;"><div class="arrow"></div></button>
<!-- FOOTER -->
<?php include_once(__DIR__ . '/../../member/basic/main_footer.skin.php'); ?>
<!-- //FOOTER -->
</div><!-- wrapper END -->
<script>
// AOS / Lenis 초기화 (안전 가드)
try {
AOS.init();
if (typeof Lenis !== 'undefined') {
const lenis = new Lenis();
lenis.on('scroll', ScrollTrigger.update);
gsap.ticker.add((time)=>{ lenis.raf(time * 1000) });
gsap.ticker.lagSmoothing(0);
window.lenis = lenis; // 다른 코드에서 접근할 수 있게
}
} catch(e) { console.error(e); }
</script>
<script>
// ===== 공용 유틸 =====
function getQueryString(name){
// 페이지 구성 요소가 없을 수 있으므로 가드
const intro = document.querySelector('.intro_wrap');
if (intro) intro.style.display = "none";
const mainMask = document.querySelector('.main_mask');
if (mainMask) mainMask.classList.add('skip');
return new URLSearchParams(window.location.search).get(name);
}
// 필터 변경 시 자동 제출
(function(){
const form = document.querySelector('.qa-controls');
const boxes = Array.from(document.querySelectorAll('.qa-controls input[name="cat[]"]'));
const writer = document.querySelector('.qa-controls input[name="writer"]');
function submitForm(){ form && form.submit(); }
function syncAllToggle(changed){
const allBox = boxes.find(b => b.value === 'all');
const itemBoxes = boxes.filter(b => b.value !== 'all');
if (!allBox) return;
if (changed && changed.value === 'all') {
// 전체 체크 시 개별은 해제
if (allBox.checked) itemBoxes.forEach(b => b.checked = false);
} else {
// 개별 체크 시 전체 해제
if (itemBoxes.some(b => b.checked)) allBox.checked = false;
// 개별이 전부 해제되면 전체 자동 체크
if (!itemBoxes.some(b => b.checked)) allBox.checked = true;
}
}
boxes.forEach(b => {
b.addEventListener('change', function(){ syncAllToggle(this); submitForm(); });
});
if (writer) writer.addEventListener('change', submitForm);
})();
// Footer family site toggle
$(function(){
$('.family_btn').on('click', function(e){
e.stopPropagation();
$('.family_list, .family_btn').toggleClass('family_on');
});
$(document).on('click', function(e){
if(!$(e.target).closest('.family_wrap').length){
$('.family_list, .family_btn').removeClass('family_on');
}
});
});
// Cookie helpers (기존 로직 유지)
function deleteCookie(name){
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/bbs;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/faq;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/qa;";
}
function getCookie(cname){
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i=0;i<ca.length;i++){
let c = ca[i];
while(c.charAt(0)==' '){ c = c.substring(1); }
if(c.indexOf(name) == 0){ return c.substring(name.length, c.length); }
}
return "";
}
// ===== 로그인/메뉴 표시 =====
window.__serverSessionReady = <?= !empty($_SESSION['user']['userId']) ? 'true' : 'false' ?>;
const QNA_ADMIN_IDS = [
'kjy0426@hanmaceng.co.kr',
'b24014@hanmaceng.co.kr',
'b23065@hanmaceng.co.kr',
'b23008@baroncs.co.kr',
'shyeom1@samaneng.com',
'cjy627@hanmaceng.co.kr',
'b23072@hanmaceng.co.kr',
'b24051@hanmaceng.co.kr',
'rmsgud1202@hanmaceng.co.kr',
'm21318@hanmaceng.co.kr',
'b21367@hanmaceng.co.kr',
'b25023@hanmaceng.co.kr',
'sdi9429@naver.com',
'junsuy@hanmail.net',
'ilphilo92@gmail.com'
];
function isAdminLoginId(loginId = null) {
const value = (loginId || sessionStorage.getItem('loginId') || '').trim().toLowerCase();
return QNA_ADMIN_IDS.includes(value);
}
function hasClientSession() {
const loginId = sessionStorage.getItem('loginId') || '';
const sessionJwt = sessionStorage.getItem('sessionJwt') || '';
return loginId !== '' && sessionJwt.split('.').length === 3;
}
function syncDescopeServerSession() {
if (window.__serverSessionReady) {
return Promise.resolve(true);
}
if (!hasClientSession()) {
return Promise.resolve(false);
}
return $.ajax({
url: '/eng/skin/member/basic/descope_restore_session.php',
type: 'POST',
dataType: 'json',
data: {
loginId: sessionStorage.getItem('loginId') || '',
userId: sessionStorage.getItem('descopeUserId') || sessionStorage.getItem('loginId') || '',
userName: sessionStorage.getItem('userName') || '',
email: sessionStorage.getItem('loginId') || '',
phone: sessionStorage.getItem('phone') || '',
company: sessionStorage.getItem('company') || '',
familyCompany: sessionStorage.getItem('familyCompany') || '',
position: sessionStorage.getItem('position') || '',
team: sessionStorage.getItem('team') || '',
familyUniqueKey: sessionStorage.getItem('familyUniqueKey') || '',
userRole: sessionStorage.getItem('userRole') || '',
sessionJwt: sessionStorage.getItem('sessionJwt') || ''
}
}).then(function(res) {
const ok = !!(res && res.status === 'ok');
window.__serverSessionReady = ok;
return ok;
}).catch(function(err) {
console.error(err);
return false;
});
}
async function openQaWrite() {
if (!hasClientSession()) {
alert('Login is required.');
window.location.href = '/eng/index.php?popup=login';
return;
}
const ok = await syncDescopeServerSession();
if (!ok) {
alert('The login session could not be restored. Please log in again.');
window.location.href = '/eng/index.php?popup=login';
return;
}
window.location.href = '/eng/bbs/descope_qa_write.php';
}
function updateHeaderMenu(){
try{
const jwt = sessionStorage.getItem('sessionJwt') || '';
const loginId = sessionStorage.getItem('loginId') || '';
const isLoggedIn = jwt.split('.').length === 3;
const isAdmin = isAdminLoginId(loginId);
$('.my_join2, .my_login2').toggle(isLoggedIn);
$('.my_join, .my_login').toggle(!isLoggedIn);
$('#my_join2').html(
isLoggedIn && isAdmin
? "<a href='/eng/adm/index.php' target='_blank'>관리페이지</a>"
: "<a href='/eng/index.php'>Home</a>"
);
} catch(e){ console.error(e); }
}
function descopeLogout() {
fetch('/eng/skin/member/basic/descope_logout.php', {
method: 'POST',
credentials: 'include' // PHPSESSID 쿠키 전송
})
.then(res => {
if (!res.ok) throw new Error('서버 로그아웃 실패');
// 1) 로컬 저장소 정리
// sessionStorage.removeItem("refreshJwt");
// sessionStorage.removeItem("sessionJwt");
// sessionStorage.removeItem("userRole");
// sessionStorage.removeItem("userName");
// sessionStorage.removeItem("loginId");
sessionStorage.clear();
localStorage.clear();
// 2) UI 갱신
updateHeaderMenu();
// 3) 로그인 페이지로 이동
window.location.href = '/eng/index.php';
})
.catch(err => {
console.error(err);
alert('로그아웃 중 오류가 발생했습니다.');
});
}
$(document).ready(function() {
// 기존에 있던 updateHeaderMenu() 호출 뒤에
$('#my_login2 a').off('click').on('click', function(e){
e.preventDefault();
descopeLogout();
});
});
$(document).ready(function() {
updateHeaderMenu();
if (!window.__serverSessionReady && hasClientSession()) {
syncDescopeServerSession();
}
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
});
//descope login
$(document).ready(function(){
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
$.ajax({
url : '/eng/skin/member/basic/descope_login.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
dataType : "json",
success : function(res){
if(res.status === "ok") {
// 토큰 저장
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
sessionStorage.setItem("sessionJwt", res.sessionJwt);
// ✅ 사용자 정보 저장
if (res.user) {
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
sessionStorage.setItem("userName", res.user.name || '');
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
sessionStorage.setItem("phone", res.user.phone || '');
}
// ✅ 추가: 관리자 등 정보 저장
if(res.user && res.user.roleNames && res.user.roleNames[0])
sessionStorage.setItem("userRole", res.user.roleNames[0]);
else
sessionStorage.removeItem("userRole");
// ✅ 로그인 후 메뉴 갱신
updateHeaderMenu();
// UI 처리
$('.popup_wrap').hide();
$('body').css('overflow', '');
lenis.start();
// alert('로그인 하셨습니다.');
} else {
alert(res.message || "로그인 실패");
// 🔴 실패 횟수에 따라 안내 배너 교체
if (res.failCount && res.failCount >= 8) {
updateLoginBanner("fail");
}
}
},
error : function(err){
alert(err.statusText || "통신 오류");
}
});
});
});
// ✅ 배너 교체 함수
function updateLoginBanner(type = "default") {
const $banner = $('#login_notice_banner');
if (!$banner.length) return;
if (type === "default") {
$banner.css({ background: "#063e01ff", color: "#fff" });
$banner.find("strong").text("[로그인 시스템 변경 안내]");
$banner.find("p.left").html(`
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
`);
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
}
if (type === "fail") {
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
$banner.find("strong").text("[로그인 시도 제한 안내]");
$banner.find("p.left").html(`
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
10회 이상 실패 시 계정이 잠금 처리됩니다.
`);
$banner.find("p:last").text("");
}
}
// Q&A ID 검색
$(document).on("click", ".btn-move", function() {
const qnaId = $(".qna-id-input").val().trim();
if (!qnaId) {
alert("Q&A ID를 입력하세요.");
return;
}
location.href = "/eng/bbs/descope_qa_detail.php?id=" + qnaId;
});
$("#qna-id-search").on("keypress", function(e){
if(e.key === "Enter"){
$("#qna-id-btn").click();
}
});
// 회원가입 약관동의 (기존 유지)
$(document).on('click', '#fregister button[type=submit]', function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '/eng/bbs/register_form.php',
type: 'POST',
datatype: 'json',
contentType: 'application/json; charset=utf-8',
data: { agree11, agree21 },
success: function(){},
error: function(err){ alert(err); }
});
});
// URL 쿼리 파싱에 따른 팝업 열기 (가드 추가)
$(function(){
try{
const popupParam = getQueryString('popup');
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('t');
if (popupParam === 'signup') {
$('#pop_agreement').show();
$('body').css('overflow','hidden');
if (window.lenis) window.lenis.stop();
}
if (popupParam === 'pwreset') {
$('#pop_search').show();
$('body').css('overflow','hidden');
$('#pop_search .popup_contents_wrap').hide();
if (token) {
if (!sessionStorage.getItem('pwreset_shown')) {
$('#password_reset').show();
sessionStorage.setItem('pwreset_shown', '1');
}
} else {
$('#pop_search .popup_contents_wrap').first().show();
}
$('#pop_search .btn_close').on('click', function(){
$('#pop_search').hide();
$('body').css('overflow','');
});
}
} catch(e){ console.error(e); }
});
// 초기 메뉴 상태 반영 + storage 동기화
document.addEventListener('DOMContentLoaded', function(){
updateHeaderMenu();
setTimeout(updateHeaderMenu, 0);
});
window.addEventListener('storage', function(e){
if (e.key === 'sessionJwt' || e.key === 'userRole') updateHeaderMenu();
});
// tmp 쿠키 시나리오 유지
(function(){
try{
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
} catch(e){ console.error(e); }
})();
</script>
<?php
// Q&A 페이지에서는 Descope 로그인에 필요한 최소 팝업만 포함합니다.
$BASE = $_SERVER['DOCUMENT_ROOT'].'/eng/skin/member/basic';
$partials = [
'login.skin.php',
'register.skin.php',
'privacy.skin.php',
'password_lost.skin.php',
];
foreach ($partials as $p) {
$full = $BASE.'/'.$p;
if (file_exists($full)) {
include $full;
echo "<!-- INCLUDED: {$full} -->\n"; // 디버그 표시
} else {
echo "<!-- MISSING: {$full} -->\n"; // 경로 문제 확인용
}
}
?>
</body>
</html>
<script>
</script>
+106
View File
@@ -0,0 +1,106 @@
<?php
// require_once __DIR__ . 'egbim1/skin/member/basic/descope_session.php'; // auth.php 안에 session_start()와 로그인 체크
// DB 연결 (PDO)
$host = 'eg-bim.co.kr';
$dbname = 'egbim';
$user = 'egbim';
$pass = 'egbim3840!!';
$charset = 'utf8mb4';
$dsn = "mysql:host={$host};dbname={$dbname};charset={$charset}";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
$pdo = new PDO($dsn, $user, $pass, $options);
// 폼 데이터 수집
$userId = $_SESSION['user']['userId']; // auth.php에서 세션에 담긴 userId
$category = trim($_POST['category'] ?? '');
$title = trim($_POST['title'] ?? '');
$content = trim($_POST['content'] ?? '');
$secret = isset($_POST['secret']) ? 1 : 0; // 체크박스
$status = 'await'; // 항상 답변대기
// 유효성 검사
$errors = [];
$allowedCats = ['error','improvement','general','notice'];
if (!$category || !in_array($category, $allowedCats, true)) {
$errors[] = '올바른 구분을 선택해주세요.';
}
if (mb_strlen($title) > 100 || $title === '') {
$errors[] = '제목은 1~100자 사이여야 합니다.';
}
if (mb_strlen($content) === 0) {
$errors[] = '내용을 입력해주세요.';
}
if ($errors) {
// 에러 처리: 뒤로 가기 or JSON 리턴
foreach ($errors as $e) echo "<p style='color:red;'>$e</p>";
echo "<p><a href='javascript:history.back()'>← 뒤로가기</a></p>";
exit;
}
try {
// 트랜잭션 시작
$pdo->beginTransaction();
// 1) 게시글 INSERT
$sql = "INSERT INTO qa_posts
(user_id, category, title, content, is_secret, status, created_at)
VALUES
(:uid, :cat, :tit, :cont, :sec, :st, NOW())";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':uid' => $userId,
':cat' => $category,
':tit' => $title,
':cont' => $content,
':sec' => $secret,
':st' => $status,
]);
$postId = $pdo->lastInsertId();
// 2) 첨부파일 처리 (uploads/qa/YYYYMMDD 디렉토리)
if (!empty($_FILES['attach']) && is_array($_FILES['attach']['tmp_name'])) {
$baseDir = __DIR__ . '/uploads/qa/' . date('Ymd');
if (!is_dir($baseDir)) mkdir($baseDir, 0755, true);
$fileStmt = $pdo->prepare(
"INSERT INTO qa_attachments
(post_id, file_name, file_path, file_size, uploaded_at)
VALUES
(:pid, :fname, :fpath, :fsize, NOW())"
);
foreach ($_FILES['attach']['tmp_name'] as $i => $tmp) {
if (!is_uploaded_file($tmp)) continue;
$origName = $_FILES['attach']['name'][$i];
$size = $_FILES['attach']['size'][$i];
// 파일명 충돌 방지
$ext = pathinfo($origName, PATHINFO_EXTENSION);
$newName = uniqid() . ($ext ? ".$ext" : '');
$dest = "$baseDir/$newName";
if (move_uploaded_file($tmp, $dest)) {
$fileStmt->execute([
':pid' => $postId,
':fname' => $origName,
':fpath' => substr($dest, strlen(__DIR__)),
':fsize' => $size,
]);
}
}
}
$pdo->commit();
// 완료 후 상세 보기로
header("Location: view.php?id={$postId}");
exit;
} catch (Exception $e) {
$pdo->rollBack();
exit('오류 발생: ' . $e->getMessage());
}
+659
View File
@@ -0,0 +1,659 @@
<?php
// skin/qa/basic/descope_qa_write.skin.php
// ✅ DB 연결
$pdo = new PDO("mysql:host=db;dbname=egbim;charset=utf8mb4", "egbim", "baron3840!!", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
// ✅ EG-BIM (product_code=8) 기준 최신 external_version 가져오기
$stmt = $pdo->prepare("
SELECT external_version
FROM deploy_versions
WHERE product_code = 1
ORDER BY updated_at DESC
LIMIT 1
");
$stmt->execute();
$version = $stmt->fetchColumn() ?: '1.0.0'; // fallback
// ✅ 다운로드 URL 자동 생성
$download_url = "https://release-download.hmac.kr/eg-bim/{$version}/setup_eg-bim_{$version}.exe";
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>111</title>
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<!-- 디자인팀 공통 -->
<script type="text/javascript" src="/eng/js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="/eng/js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script type="text/javascript" src="/eng/js/popup.js?v=20260723"></script>
<script type="text/javascript" src="/eng/js/common.js"></script>
<script type="text/javascript" src="/eng/js/index.js"></script>
<!-- CKEditor 5 (Classic Build) CDN -->
<script src="https://cdn.ckeditor.com/ckeditor5/41.0.0/classic/ckeditor.js"></script>
<link rel="stylesheet" href="/eng/css/reset.css"/>
<link rel="stylesheet" href="/eng/css/font.css"/>
<link rel="stylesheet" href="/eng/css/style.css"/>
</head>
<body>
<div class="wrapper">
<!-- Header -->
<?php include_once(__DIR__ . '/../../member/basic/main_header.skin.php'); ?>
<!-- //Header -->
<div class="container faq">
<section class="intro">
<div class="top js__dark">
<h2>Q&A</h2>
<span>EG-BIM Q&As</span>
</div>
<ul class="sub_tab">
<li><a href="/eng/bbs/faq.php">FAQ</a></li>
<li class="on"><a href="/eng/bbs/descope_qa_list.php">Q&A</a></li>
<li><a href="https://939.co.kr/saman/" target="_blank">Remote Support</a></li>
</ul>
</section>
<span class="sub_tit">Q&A</span>
<div class="contents">
<?php if (!empty($errors)): ?>
<div class="qa-error-box" style="margin-bottom:20px;padding:14px 16px;border:1px solid #e66;background:#fff5f5;color:#b42318;line-height:1.6;">
<?= nl2br(htmlspecialchars(implode("\n", $errors), ENT_QUOTES, 'UTF-8')) ?>
</div>
<?php endif; ?>
<?php
$admin = is_qna_admin();
?>
<!-- ★ action 에 ?id= 붙여서 수정/등록 구분 -->
<form id="qaForm"
action="/eng/bbs/descope_qa_write.php<?= $isEdit ? '?id=' . $post['post_id'] : '' ?>"
method="POST"
enctype="multipart/form-data">
<section class="form-wrap">
<div class="form-area">
<div class="form-group">
<div class="form-item">
<label class="form-tit" for="category">Category</label>
<select class="select-sm" name="category" id="category" required>
<option value="">-- Select --</option>
<option value="오류문의" <?= $post['category']=='error' ? 'selected' : '' ?>>Error</option>
<option value="개선문의" <?= $post['category']=='improvement' ? 'selected' : '' ?>>Impr.</option>
<option value="일반문의" <?= $post['category']=='general' ? 'selected' : '' ?>>Other</option>
<?php if ($admin): ?>
<option value="공지사항" <?= $post['category']=='notice' ? 'selected' : '' ?>>공지사항</option>
<option value="관리글" <?= $post['category']=='admin' ? 'selected' : '' ?>>관리글</option>
<?php endif; ?>
</select>
</div>
<!-- <div class="form-item">
<strong class="form-tit">처리상태</strong>
<?php if (!$isEdit): ?>
<input type="hidden" name="status" value="await">
<?php endif; ?>
<select class="select-sm" name="status" <?= $isEdit ? '' : 'disabled' ?>>
<option value="await" <?= $post['status']==='await' ? 'selected':'' ?>>답변대기</option>
<option value="review" <?= $post['status']==='review' ? 'selected':'' ?>>검토중</option>
<option value="done" <?= $post['status']==='done' ? 'selected':'' ?>>답변완료</option>
</select>
</div> -->
</div>
<div class="form-item">
<strong class="form-tit">Title<span class="require">*</span></strong>
<input type="text" name="title" style="width:100%;" placeholder="Enter a title"
class="input-text" required
value="<?= htmlspecialchars($post['title'], ENT_QUOTES, 'UTF-8') ?>">
</div>
<div class="form-item">
<strong class="form-tit">Private</strong>
<label>
<input type="checkbox" name="secret" value="1" <?= $post['is_secret'] ? 'checked':'' ?>>
Make Private
</label>
</div>
<div class="form-item">
<label class="form-tit" for="content">Content</label>
<div class="form-col-group">
<textarea id="content" name="content" class="text-area" placeholder="Enter content"><?= $post['content'] ?></textarea>
</div>
</div>
<!--CKeditor script-->
<script>
document.addEventListener("DOMContentLoaded", function() {
const qaForm = document.getElementById("qaForm");
const contentField = document.getElementById("content");
const saveButton = qaForm?.querySelector('.btn-save');
let isSubmitting = false;
const editorReady = ClassicEditor
.create(contentField, {
toolbar: [
'heading', '|',
'bold', 'italic', 'link',
'bulletedList', 'numberedList', '|',
'blockQuote', 'insertTable', 'imageUpload',
'undo', 'redo'
],
language: 'ko',
ckfinder: {
uploadUrl: '/eng/bbs/descope_qa_img_upload.php'
}
})
.then((editor) => {
window.editor = editor;
return editor;
})
.catch((error) => {
console.error(error);
return null;
});
qaForm?.addEventListener("submit", async function(e) {
e.preventDefault();
if (isSubmitting) return;
const editor = await editorReady;
const editorData = editor ? editor.getData().trim() : contentField.value.trim();
if (!editorData) {
alert("내용을 입력해주세요.");
if (editor) {
editor.editing.view.focus();
} else {
contentField.focus();
}
return;
}
if (typeof syncFileInput === 'function') {
syncFileInput();
}
contentField.value = editorData;
isSubmitting = true;
if (saveButton) saveButton.disabled = true;
qaForm.submit();
});
});
</script>
<div class="form-item">
<label class="form-tit" for="attach">Attachment</label>
<div class="form-col-group">
<div class="attach-box">
<input type="file" id="attach" name="attach[]" multiple>
<small class="info-msg">* Up to 30MB. Executable files such as exe are blocked; compress them as zip before uploading.</small>
</div>
<!-- 드래그 앤 드롭 영역 -->
<div id="drop-zone" class="drop-zone">
<p>Drag files here or click to upload</p>
</div>
<!-- 업로드 파일 미리보기 -->
<ul id="file-list"></ul>
<?php if ($isEdit): ?>
<?php
// DB에서 해당 글(post_id)의 기존 첨부파일 불러오기
$stmt = $pdo->prepare("SELECT id, ori_name, file_size FROM qa_attachments WHERE post_id = ?");
$stmt->execute([$post['post_id']]);
$files = $stmt->fetchAll();
?>
<?php if (!empty($files)): ?>
<div class="old-attachments">
<p><strong>현재 첨부파일</strong></p>
<ul>
<?php foreach ($files as $file): ?>
<li>
<label>
<input type="checkbox" name="delete_files[]" value="<?= $file['id'] ?>">
<?= htmlspecialchars($file['ori_name']) ?>
(<?= number_format($file['file_size']/1024,1) ?> KB)
<span style="color:red;">[삭제]</span>
</label>
</li>
<?php endforeach ?>
</ul>
</div>
<?php endif ?>
<?php endif ?>
</div>
</div>
</div>
<div class="btn-group">
<button type="button" class="btn btn-cancel" onclick="history.back()">Cancel</button>
<button type="submit" class="btn btn-save"><?= $isEdit ? 'Save' : 'Submit' ?></button>
</div>
</section>
</form>
</div><!-- contents END -->
</div><!-- container END -->
<!-- FOOTER -->
<?php include_once(__DIR__ . '/../../member/basic/main_footer.skin.php'); ?>
<!-- //FOOTER -->
</div><!-- wrapper END -->
<!-- 첨부파일 drag -->
<script>
const dropZone = document.getElementById("drop-zone");
const fileInput = document.getElementById("attach");
const fileList = document.getElementById("file-list");
const allowedExtensions = new Set(['jpg','jpeg','png','gif','pdf','hwp','doc','docx','xls','xlsx','zip','7z','dwg','dwt','dxf','grm','ctb','shx','shp','lin','lsp','reg']);
// 업로드 대기 파일 보관용
let uploadFiles = [];
// 드래그 영역 클릭 → 파일 선택창 열기
dropZone.addEventListener("click", () => fileInput.click());
// 드래그 시 시각 효과
dropZone.addEventListener("dragover", (e) => {
e.preventDefault();
dropZone.classList.add("dragover");
});
dropZone.addEventListener("dragleave", () => {
dropZone.classList.remove("dragover");
});
// 드롭 처리
dropZone.addEventListener("drop", (e) => {
e.preventDefault();
dropZone.classList.remove("dragover");
addFiles(e.dataTransfer.files);
});
// 버튼으로 파일 선택했을 때
fileInput.addEventListener("change", () => {
addFiles(fileInput.files);
});
// 파일 추가 처리
function addFiles(files) {
for (const file of Array.from(files)) {
const ext = (file.name.split('.').pop() || '').toLowerCase();
if (!allowedExtensions.has(ext)) {
alert(`Unsupported file type: ${file.name}\nExecutable files such as exe must be uploaded as zip archives.`);
continue;
}
if (file.size > 30 * 1024 * 1024) {
alert(`File exceeds the 30MB limit: ${file.name}`);
continue;
}
const exists = uploadFiles.some((savedFile) => (
savedFile.name === file.name &&
savedFile.size === file.size &&
savedFile.lastModified === file.lastModified
));
if (!exists) {
uploadFiles.push(file);
}
}
renderFileList();
syncFileInput();
}
// 파일 목록 출력
function renderFileList() {
fileList.innerHTML = "";
uploadFiles.forEach(file => {
const li = document.createElement("li");
li.textContent = `${file.name} (${(file.size/1024).toFixed(1)} KB)`;
fileList.appendChild(li);
});
}
// fileInput.files 에 다시 세팅 (서버로 전송 가능하게)
function syncFileInput() {
const dataTransfer = new DataTransfer();
uploadFiles.forEach(file => dataTransfer.items.add(file));
fileInput.files = dataTransfer.files;
}
</script>
<!-- ===== AOS / Lenis 초기화 (가드) ===== -->
<script>
try{
AOS.init();
if (typeof Lenis !== 'undefined') {
const lenis = new Lenis();
lenis.on('scroll', ScrollTrigger.update);
gsap.ticker.add((time)=>{ lenis.raf(time * 1000) });
gsap.ticker.lagSmoothing(0);
window.lenis = lenis;
}
} catch(e){ console.error(e); }
</script>
<!-- ===== 공용 유틸 & 헤더/팝업 동작 (list 스킨과 동일) ===== -->
<script>
//공용 유틸
function getQueryString(name){
const intro = document.querySelector('.intro_wrap');
if (intro) intro.style.display = "none";
const mainMask = document.querySelector('.main_mask');
if (mainMask) mainMask.classList.add('skip');
return new URLSearchParams(window.location.search).get(name);
}
// 필터 변경 시 자동 제출
document.querySelectorAll('.qa-controls input[name="writer"], .qa-controls input[name="status[]"]')
.forEach(el=>{
el.addEventListener('change', function(){
this.closest('.qa-controls').submit();
});
});
// Family site 토글
$(function(){
$('.family_btn').on('click', function(e){
e.stopPropagation();
$('.family_list, .family_btn').toggleClass('family_on');
});
$(document).on('click', function(e){
if(!$(e.target).closest('.family_wrap').length){
$('.family_list, .family_btn').removeClass('family_on');
}
});
});
function deleteCookie(name){
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/bbs;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/faq;";
document.cookie = name+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/eng/qa;";
}
function getCookie(cname){
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i=0;i<ca.length;i++){
let c = ca[i];
while(c.charAt(0)==' '){ c = c.substring(1); }
if(c.indexOf(name) == 0){ return c.substring(name.length, c.length); }
}
return "";
}
// Header 메뉴 표시
function updateHeaderMenu(){
try{
const jwt = sessionStorage.getItem('sessionJwt') || '';
const loginId = sessionStorage.getItem('loginId') || '';
const isLoggedIn = jwt.split('.').length === 3;
const adminList = [
'kjy0426@hanmaceng.co.kr',
'b24014@hanmaceng.co.kr',
'b23065@hanmaceng.co.kr',
'b23008@baroncs.co.kr',
'shyeom1@samaneng.com',
'cjy627@hanmaceng.co.kr',
'b23072@hanmaceng.co.kr',
'b24051@hanmaceng.co.kr',
'rmsgud1202@hanmaceng.co.kr',
'm21318@hanmaceng.co.kr',
'b21367@hanmaceng.co.kr',
'b25023@hanmaceng.co.kr',
'sdi9429@naver.com',
'junsuy@hanmail.net',
'ilphilo92@gmail.com'
];
const isAdmin = adminList.includes(loginId.toLowerCase());
$('.my_join2, .my_login2').toggle(isLoggedIn);
$('.my_join, .my_login').toggle(!isLoggedIn);
$('#my_join2').html(
isLoggedIn && isAdmin
? "<a href='/eng/adm/index.php' target='_blank'>관리페이지</a>"
: "<a href='/eng/index.php'>Home</a>"
);
} catch(e){ console.error(e); }
}
function descopeLogout() {
fetch('/eng/skin/member/basic/descope_logout.php', {
method: 'POST',
credentials: 'include' // PHPSESSID 쿠키 전송
})
.then(res => {
if (!res.ok) throw new Error('서버 로그아웃 실패');
// 1) 로컬 저장소 정리
// sessionStorage.removeItem("refreshJwt");
// sessionStorage.removeItem("sessionJwt");
// sessionStorage.removeItem("userRole");
// sessionStorage.removeItem("userName");
// sessionStorage.removeItem("loginId");
sessionStorage.clear();
localStorage.clear();
// 2) UI 갱신
updateHeaderMenu();
// 3) 로그인 페이지로 이동
window.location.href = '/eng/index.php';
})
.catch(err => {
console.error(err);
alert('로그아웃 중 오류가 발생했습니다.');
});
}
$(document).ready(function() {
// 기존에 있던 updateHeaderMenu() 호출 뒤에
$('#my_login2 a').off('click').on('click', function(e){
e.preventDefault();
descopeLogout();
});
});
$(document).ready(function() {
updateHeaderMenu();
// (필요하다면, 로그인 성공 후에도 항상 updateHeaderMenu(); 호출)
});
//descope login
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
$.ajax({
url : '/eng/skin/member/basic/descope_login.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
dataType : "json",
success : function(res){
if(res.status === "ok") {
// 토큰 저장
// sessionStorage.setItem("refreshJwt", res.refreshJwt);
sessionStorage.setItem("sessionJwt", res.sessionJwt);
// ✅ 사용자 정보 저장
if (res.user) {
sessionStorage.setItem("loginId", res.user.loginIds?.[0] || '');
sessionStorage.setItem("userName", res.user.name || '');
sessionStorage.setItem("company", res.user.customAttributes?.company || '');
sessionStorage.setItem("familyCompany", res.user.customAttributes?.familyCompany || '');
sessionStorage.setItem("position", res.user.customAttributes?.position || '');
sessionStorage.setItem("team", res.user.customAttributes?.team || '');
sessionStorage.setItem("familyUniqueKey", res.user.customAttributes?.familyUniqueKey || '');
sessionStorage.setItem("phone", res.user.phone || '');
}
// ✅ 추가: 관리자 등 정보 저장
if(res.user && res.user.roleNames && res.user.roleNames[0])
sessionStorage.setItem("userRole", res.user.roleNames[0]);
else
sessionStorage.removeItem("userRole");
// ✅ 로그인 후 메뉴 갱신
updateHeaderMenu();
// UI 처리
$('.popup_wrap').hide();
$('body').css('overflow', '');
lenis.start();
// alert('로그인 하셨습니다.');
} else {
alert(res.message || "로그인 실패");
// 🔴 실패 횟수에 따라 안내 배너 교체
if (res.failCount && res.failCount >= 8) {
updateLoginBanner("fail");
}
}
},
error : function(err){
alert(err.statusText || "통신 오류");
}
});
});
// ✅ 배너 교체 함수
function updateLoginBanner(type = "default") {
const $banner = $('#login_notice_banner');
if (!$banner.length) return;
if (type === "default") {
$banner.css({ background: "#063e01ff", color: "#fff" });
$banner.find("strong").text("[로그인 시스템 변경 안내]");
$banner.find("p.left").html(`
더 나은 보안을 위해 2025년 8월 8일부터 로그인 시스템이 변경되었습니다.<br>
기존 회원 또한 신규 시스템에 맞춰 재가입을 진행해주시기 바랍니다.
`);
$banner.find("p:last").html(`※ 로그인 및 가입 관련 문의: <strong>010-8721-7453</strong>`);
}
if (type === "fail") {
$banner.css({ background: "#6a0202ff", color: "#faf6f6ff" });
$banner.find("strong").text("[로그인 시도 제한 안내]");
$banner.find("p.left").html(`
비밀번호 입력을 <strong>7회 이상 연속 실패</strong>하셨습니다.<br>
<strong>8번째 시도부터 3분 대기</strong>가 적용됩니다.<br>
10회 이상 실패 시 계정이 잠금 처리됩니다.
`);
$banner.find("p:last").text("");
}
}
// // 회원가입 약관동의 (기존 유지)
$(document).on('click', '#fregister button[type=submit]', function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '/eng/bbs/register_form.php',
type: 'POST',
datatype: 'json',
contentType: 'application/json; charset=utf-8',
data: { agree11, agree21 },
success: function(){},
error: function(err){ alert(err); }
});
});
// URL 쿼리 파싱 → 회원가입/비번재설정 팝업 자동 오픈
$(function(){
try{
const popupParam = getQueryString('popup');
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('t');
if (popupParam === 'signup') {
$('#pop_agreement').show();
$('body').css('overflow','hidden');
if (window.lenis) window.lenis.stop();
}
if (popupParam === 'pwreset') {
$('#pop_search').show();
$('body').css('overflow','hidden');
$('#pop_search .popup_contents_wrap').hide();
if (token) {
if (!sessionStorage.getItem('pwreset_shown')) {
$('#password_reset').show();
sessionStorage.setItem('pwreset_shown', '1');
}
} else {
$('#pop_search .popup_contents_wrap').first().show();
}
$('#pop_search .btn_close').on('click', function(){
$('#pop_search').hide();
$('body').css('overflow','');
});
}
} catch(e){ console.error(e); }
});
// 초기 메뉴 상태 반영 + storage 동기화
document.addEventListener('DOMContentLoaded', function(){
updateHeaderMenu();
setTimeout(updateHeaderMenu, 0);
});
window.addEventListener('storage', function(e){
if (e.key === 'sessionJwt' || e.key === 'userRole') updateHeaderMenu();
});
// tmp 쿠키 시나리오 유지
(function(){
try{
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
} catch(e){ console.error(e); }
})();
</script>
<?php
// Q&A 페이지에서는 Descope 로그인에 필요한 최소 팝업만 포함합니다.
$BASE = $_SERVER['DOCUMENT_ROOT'].'/eng/skin/member/basic';
$partials = [
'login.skin.php',
'register.skin.php',
'privacy.skin.php',
'password_lost.skin.php',
];
foreach ($partials as $p) {
$full = $BASE.'/'.$p;
if (file_exists($full)) {
include $full;
echo "<!-- INCLUDED: {$full} -->\n"; // 디버그 표시
} else {
echo "<!-- MISSING: {$full} -->\n"; // 경로 문제 확인용
}
}
?>
</body>
</html>
<script>
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

+194
View File
@@ -0,0 +1,194 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 6;
if ($is_checkbox) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<div id="bo_list">
<?php if ($category_option) { ?>
<!-- 카테고리 시작 { -->
<nav id="bo_cate">
<h2><?php echo $qaconfig['qa_title'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<!-- } 카테고리 끝 -->
<?php } ?>
<!-- 게시판 페이지 정보 및 버튼 시작 { -->
<div id="bo_btn_top">
<div id="bo_list_total">
<span>Total <?php echo number_format($total_count) ?>건</span>
<?php echo $page ?> 페이지
</div>
<?php if ($admin_href || $write_href) { ?>
<ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
<!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap">
<fieldset class="bo_sch">
<h3>검색</h3>
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<?php echo get_qa_sfl_select_options($sfl); ?>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<div class="sch_bar">
<input type="text" name="stx" value="<?php echo stripslashes($stx); ?>" id="stx" required class="sch_input" size="25" maxlength="15" placeholder=" 검색어를 입력해주세요">
<button type="submit" value="검색" class="sch_btn" title="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</div>
<button type="button" class="bo_sch_cls"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
</form>
</fieldset>
<div class="bo_sch_bg"></div>
</div>
<script>
// 게시판 검색
$(".btn_bo_sch").on("click", function() {
$(".bo_sch_wrap").toggle();
})
$('.bo_sch_bg, .bo_sch_cls').click(function(){
$('.bo_sch_wrap').hide();
});
</script>
<!-- } 게시판 검색 끝 -->
</li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
<?php } ?>
</div>
<!-- } 게시판 페이지 정보 및 버튼 끝 -->
<form name="fqalist" id="fqalist" action="./qadelete.php" onsubmit="return fqalist_submit(this);" method="post">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="sca" value="<?php echo $sca; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="token" value="<?php echo get_text($token); ?>">
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $board['bo_subject'] ?> 목록</caption>
<thead>
<tr>
<?php if ($is_checkbox) { ?>
<th scope="col" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall">
<span></span>
<b class="sound_only">현재 페이지 게시물 전체선택</b>
</label>
</th>
<?php } ?>
<th scope="col">번호</th>
<th scope="col">제목</th>
<th scope="col">글쓴이</th>
<th scope="col">등록일</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<?php
for ($i=0; $i<count($list); $i++) {
if ($i%2==0) $lt_class = "even";
else $lt_class = "";
?>
<tr class="<?php echo $lt_class ?>">
<?php if ($is_checkbox) { ?>
<td class="td_chk chk_box">
<input type="checkbox" name="chk_qa_id[]" value="<?php echo $list[$i]['qa_id'] ?>" id="chk_qa_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_qa_id_<?php echo $i ?>">
<span></span>
<b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
</label>
</td>
<?php } ?>
<td class="td_num"><?php echo $list[$i]['num']; ?></td>
<td class="td_subject">
<span class="bo_cate_link"><?php echo $list[$i]['category']; ?></span>
<a href="<?php echo $list[$i]['view_href']; ?>" class="bo_tit">
<?php echo $list[$i]['subject']; ?>
<?php if ($list[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ; ?>
</a>
</td>
<td class="td_name"><?php echo $list[$i]['name']; ?></td>
<td class="td_date"><?php echo $list[$i]['date']; ?></td>
<td class="td_stat"><span class=" <?php echo ($list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($list[$i]['qa_status'] ? '답변완료' : '답변대기'); ?></span></td>
</tr>
<?php
}
?>
<?php if ($i == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
</tbody>
</table>
</div>
<!-- 페이지 -->
<?php echo $list_pages; ?>
<!-- 페이지 -->
<div class="bo_fx">
<ul class="btn_bo_user">
<?php if ($is_checkbox) { ?>
<li><button type="submit" name="btn_submit" value="선택삭제" title="선택삭제" onclick="document.pressed=this.value" class="btn btn_b01 btn_admin"><i class="fa fa-trash-o" aria-hidden="true"></i><span class="sound_only">선택삭제</span></button></li>
<?php } ?>
<?php if ($list_href) { ?><li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
</div>
</form>
</div>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fqalist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]")
f.elements[i].checked = sw;
}
}
function fqalist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다"))
return false;
}
return true;
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
+857
View File
@@ -0,0 +1,857 @@
<!DOCTYPE html>
<html lang="en">
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 6;
if ($is_checkbox) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ - 1:1 문의</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "http://localhost/tova";
var g5_bbs_url = "http://localhost/tova/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_is_mobile = "";
var g5_bo_table = "";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = "";
var g5_theme_shop_url = "http://localhost/tova/theme/basic/shop";
var g5_shop_url = "http://localhost/tova/shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<!-- <script src="../js/common.js?ver=2304171"></script> -->
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="../js/popup.js"></script>
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<!-- //디자인팀 작성 -->
</head>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 1:1문의하기 -->
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<div id="bo_list">
<?php if ($category_option) { ?>
<!-- 카테고리 시작 { -->
<nav id="bo_cate">
<h2><?php echo $qaconfig['qa_title'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<!-- } 카테고리 끝 -->
<?php } ?>
<!-- 게시판 페이지 정보 및 버튼 시작 { -->
<div id="bo_btn_top">
<div id="bo_list_total">
<span>Total <?php echo number_format($total_count) ?>건</span>
<?php echo $page ?> 페이지
</div>
<?php if ($admin_href || $write_href) { ?>
<ul class="btn_bo_user">
<!-- <?php //if ($admin_href) { ?><li><a href="<?php //echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php //} ?> -->
<li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
<!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap">
<fieldset class="bo_sch">
<h3>검색</h3>
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<?php echo get_qa_sfl_select_options($sfl); ?>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<div class="sch_bar">
<input type="text" name="stx" value="<?php echo stripslashes($stx); ?>" id="stx" required class="sch_input" size="25" maxlength="15" placeholder=" 검색어를 입력해주세요">
<button type="submit" value="검색" class="sch_btn" title="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</div>
<button type="button" class="bo_sch_cls"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
</form>
</fieldset>
</div>
<script>
// 게시판 검색
$(".btn_bo_sch").on("click", function() {
$(".bo_sch_wrap").toggle();
})
$('.bo_sch_bg, .bo_sch_cls').click(function(){
$('.bo_sch_wrap').hide();
});
</script>
<!-- } 게시판 검색 끝 -->
</li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
<?php } ?>
</div>
<!-- } 게시판 페이지 정보 및 버튼 끝 -->
<form name="fqalist" id="fqalist" action="./qadelete.php" onsubmit="return fqalist_submit(this);" method="post">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="sca" value="<?php echo $sca; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="token" value="<?php echo get_text($token); ?>">
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $board['bo_subject'] ?> 목록</caption>
<thead>
<tr>
<?php if ($is_checkbox) { ?>
<th scope="col" width="5%" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if(this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall">
<span></span>
<b class="sound_only">현재 페이지 게시물 전체선택</b>
</label>
</th>
<?php } ?>
<th scope="col" width="10%">번호</th>
<th scope="col" width="100%">제목</th>
<th scope="col" width="20%">글쓴이</th>
<th scope="col" width="20%">등록일</th>
<th scope="col" width="15%">상태</th>
</tr>
</thead>
<tbody>
<?php
$row_cnt = 0;
$row_num = 0;
if($sca==""){
$row_cnt = count($list2);
$row_num = $row_cnt;
}else{
$row_cnt = count($list1);
}
for ($i=0; $i<$row_cnt; $i++) {
if ($i%2==0) $lt_class = "even";
else $lt_class = "";
?>
<tr class="<?php echo $lt_class ?>">
<?php if ($is_checkbox) { ?>
<td class="td_chk chk_box">
<input type="checkbox" name="chk_qa_id[]" value="<?php echo $sca==""?$list2[$i]['qa_id']:$list1[$i]['qa_id'] ?>" id="chk_qa_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_qa_id_<?php echo $i ?>">
<span></span>
<b class="sound_only"><?php echo $sca==""?$list2[$i]['subject']:$list1[$i]['subject'] ?></b>
</label>
</td>
<?php } ?>
<td class="td_num"><?php echo $sca==""?$list2[$i]['num']:$list1[$i]['num']; //$row_num?></td>
<td class="td_subject">
<span class="bo_cate_link" style="width:80px;"><?php echo $sca==""?$list2[$i]['category']:$list1[$i]['category']; ?></span>
<a href="<?php echo $sca==""?$list2[$i]['view_href']:$list1[$i]['view_href']; ?>" class="bo_tit">
<?php echo $sca==""?$list2[$i]['subject']:$list1[$i]['subject']; ?>
<?php
if($sca==""){
if ($list2[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ;
}else{
if ($list1[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ;
}
?>
</a>
</td>
<td class="td_name"><?php echo $sca==""?$list2[$i]['name']:$list1[$i]['name']; ?></td>
<td class="td_date"><?php echo $sca==""?$list2[$i]['date']:$list1[$i]['date']; ?></td>
<td class="td_stat">
<span class="<?php if($sca==""){echo ($list2[$i]['qa_status'] ? 'txt_done' : 'txt_rdy');}else{echo ($list1[$i]['qa_status'] ? 'txt_done' : 'txt_rdy');}?>">
<?php if($sca==""){echo ($list2[$i]['qa_status'] ? '답변완료' : '답변대기');}else{echo ($list1[$i]['qa_status'] ? '답변완료' : '답변대기');} ?>
</span>
</td>
</tr>
<?php
$row_num = $row_num-1;
}
?>
<?php if ($i == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
</tbody>
</table>
</div>
<!-- 페이지 -->
<?php echo $list_pages; ?>
<!-- 페이지 -->
<div class="bo_fx">
<ul class="btn_bo_user">
<?php if ($is_checkbox) { ?>
<li><button type="submit" name="btn_submit" value="선택삭제" title="선택삭제" onclick="document.pressed=this.value" class="btn btn_b01 btn_admin"><i class="fa fa-trash-o" aria-hidden="true"></i><span class="sound_only">선택삭제</span></button></li>
<?php } ?>
<?php if ($list_href) { ?><li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
</div>
</form>
</div>
<!-- } 게시판 목록 끝 -->
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
</div>
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
<script>
AOS.init();
const lenis = new Lenis()
lenis.on('scroll', (e) => {
// console.log(e)
})
lenis.on('scroll', ScrollTrigger.update)
gsap.ticker.add((time)=>{
lenis.raf(time * 1000)
})
gsap.ticker.lagSmoothing(0)
</script>
</div>
</body>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fqalist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]")
f.elements[i].checked = sw;
}
}
function fqalist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다"))
return false;
}
return true;
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// $('#pop_agreement').hide();
// $('#pop_join').hide();
// $('#pop_mypage01').hide();
// $('#pop_search').hide();
// $('#pop_mypage02').hide();
// $('#pop_mypage03').hide();
// $('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
alert(mb_name);
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qalist.php";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+834
View File
@@ -0,0 +1,834 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 6;
if ($is_checkbox) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>FAQ - 1:1 문의</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "http://localhost/tova";
var g5_bbs_url = "http://localhost/tova/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_is_mobile = "";
var g5_bo_table = "";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = "";
var g5_theme_shop_url = "http://localhost/tova/theme/basic/shop";
var g5_shop_url = "http://localhost/tova/shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<script src="../js/common.js?ver=2304171"></script>
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script>
<!-- <script type="text/javascript" src="js/common.js"></script> -->
<script type="text/javascript" src="../js/popup.js"></script>
<!-- //디자인팀 작성 -->
</head>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 1:1문의하기 -->
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<div id="bo_list">
<?php if ($category_option) { ?>
<!-- 카테고리 시작 { -->
<nav id="bo_cate">
<h2><?php echo $qaconfig['qa_title'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<!-- } 카테고리 끝 -->
<?php } ?>
<!-- 게시판 페이지 정보 및 버튼 시작 { -->
<div id="bo_btn_top">
<div id="bo_list_total">
<span>Total <?php echo number_format($total_count) ?>건</span>
<?php echo $page ?> 페이지
</div>
<?php if ($admin_href || $write_href) { ?>
<ul class="btn_bo_user">
<!-- <?php //if ($admin_href) { ?><li><a href="<?php //echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php //} ?> -->
<li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
<!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap">
<fieldset class="bo_sch">
<h3>검색</h3>
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<?php echo get_qa_sfl_select_options($sfl); ?>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<div class="sch_bar">
<input type="text" name="stx" value="<?php echo stripslashes($stx); ?>" id="stx" required class="sch_input" size="25" maxlength="15" placeholder=" 검색어를 입력해주세요">
<button type="submit" value="검색" class="sch_btn" title="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</div>
<button type="button" class="bo_sch_cls"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
</form>
</fieldset>
</div>
<script>
// 게시판 검색
$(".btn_bo_sch").on("click", function() {
$(".bo_sch_wrap").toggle();
})
$('.bo_sch_bg, .bo_sch_cls').click(function(){
$('.bo_sch_wrap').hide();
});
</script>
<!-- } 게시판 검색 끝 -->
</li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
<?php } ?>
</div>
<!-- } 게시판 페이지 정보 및 버튼 끝 -->
<form name="fqalist" id="fqalist" action="./qadelete.php" onsubmit="return fqalist_submit(this);" method="post">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="sca" value="<?php echo $sca; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="token" value="<?php echo get_text($token); ?>">
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $board['bo_subject'] ?> 목록</caption>
<thead>
<tr>
<?php if ($is_checkbox) { ?>
<th scope="col" width="5%" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if(this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall">
<span></span>
<b class="sound_only">현재 페이지 게시물 전체선택</b>
</label>
</th>
<?php } ?>
<th scope="col" width="5%">번호</th>
<th scope="col" width="65%">제목</th>
<th scope="col" width="10%">글쓴이</th>
<th scope="col" width="10%">등록일</th>
<th scope="col" width="10%">상태</th>
</tr>
</thead>
<tbody>
<?php
$row_cnt = 0;
$row_num = 0;
if($sca==""){
$row_cnt = count($list2);
$row_num = $row_cnt;
}else{
$row_cnt = count($list1);
}
for ($i=0; $i<$row_cnt; $i++) {
if ($i%2==0) $lt_class = "even";
else $lt_class = "";
?>
<tr class="<?php echo $lt_class ?>">
<?php if ($is_checkbox) { ?>
<td class="td_chk chk_box">
<input type="checkbox" name="chk_qa_id[]" value="<?php echo $sca==""?$list2[$i]['qa_id']:$list1[$i]['qa_id'] ?>" id="chk_qa_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_qa_id_<?php echo $i ?>">
<span></span>
<b class="sound_only"><?php echo $sca==""?$list2[$i]['subject']:$list1[$i]['subject'] ?></b>
</label>
</td>
<?php } ?>
<td class="td_num"><?php echo $sca==""?$list2[$i]['num']:$list1[$i]['num']; //$row_num?></td>
<td class="td_subject">
<span class="bo_cate_link" style="width:80px;"><?php echo $sca==""?$list2[$i]['category']:$list1[$i]['category']; ?></span>
<a href="<?php echo $sca==""?$list2[$i]['view_href']:$list1[$i]['view_href']; ?>" class="bo_tit">
<?php echo $sca==""?$list2[$i]['subject']:$list1[$i]['subject']; ?>
<?php
if($sca==""){
if ($list2[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ;
}else{
if ($list1[$i]['icon_file']) echo " <i class=\"fa fa-download\" aria-hidden=\"true\"></i>" ;
}
?>
</a>
</td>
<td class="td_name"><?php echo $sca==""?$list2[$i]['name']:$list1[$i]['name']; ?></td>
<td class="td_date"><?php echo $sca==""?$list2[$i]['date']:$list1[$i]['date']; ?></td>
<td class="td_stat">
<span class="<?php if($sca==""){echo ($list2[$i]['qa_status'] ? 'txt_done' : 'txt_rdy');}else{echo ($list1[$i]['qa_status'] ? 'txt_done' : 'txt_rdy');}?>">
<?php if($sca==""){echo ($list2[$i]['qa_status'] ? '답변완료' : '답변대기');}else{echo ($list1[$i]['qa_status'] ? '답변완료' : '답변대기');} ?>
</span>
</td>
</tr>
<?php
$row_num = $row_num-1;
}
?>
<?php if ($i == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
</tbody>
</table>
</div>
<!-- 페이지 -->
<?php echo $list_pages; ?>
<!-- 페이지 -->
<div class="bo_fx">
<ul class="btn_bo_user">
<?php if ($is_checkbox) { ?>
<li><button type="submit" name="btn_submit" value="선택삭제" title="선택삭제" onclick="document.pressed=this.value" class="btn btn_b01 btn_admin"><i class="fa fa-trash-o" aria-hidden="true"></i><span class="sound_only">선택삭제</span></button></li>
<?php } ?>
<?php if ($list_href) { ?><li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="문의등록"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">문의등록</span></a></li><?php } ?>
</ul>
</div>
</form>
</div>
<!-- } 게시판 목록 끝 -->
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
</div>
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
</div>
</body>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fqalist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]")
f.elements[i].checked = sw;
}
}
function fqalist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_qa_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다"))
return false;
}
return true;
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').hide();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qalist.php";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+76
View File
@@ -0,0 +1,76 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<section id="bo_v_ans">
<h2><span class="bo_v_reply">답변</span> <?php echo get_text($answer['qa_subject']); ?></h2>
<header>
<div id="ans_datetime">
<i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $answer['qa_datetime']; ?>
</div>
<?php if ( $answer_update_href || $answer_delete_href ){ ?>
<div id="ans_add">
<button type="button" class="btn_more_add btn_more_opt btn_b01 btn" title="답변 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">답변 옵션</span></button>
<ul class="more_add">
<?php if($answer_update_href) { ?>
<li><a href="<?php echo $answer_update_href; ?>" class="btn_b01 btn" title="답변수정">답변수정</a></li>
<?php } ?>
<?php if($answer_delete_href) { ?>
<li><a href="<?php echo $answer_delete_href; ?>" class="btn_b01 btn" onclick="del(this.href); return false;" title="답변삭제">답변삭제</a></li>
<?php } ?>
</ul>
<script>
// 답변하기 옵션
$(".btn_more_add").on("click", function() {
$(".more_add").toggle();
})
</script>
</div>
<?php } ?>
</header>
<div id="ans_con">
<?php
// 파일 출력
if(isset($answer['img_count']) && $answer['img_count']) {
echo "<div id=\"bo_v_img\">\n";
for ($i=0; $i<$answer['img_count']; $i++) {
echo get_view_thumbnail($answer['img_file'][$i], $qaconfig['qa_image_width']);
}
echo "</div>\n";
}
?>
<?php echo get_view_thumbnail(conv_content($answer['qa_content'], $answer['qa_html']), $qaconfig['qa_image_width']); ?>
<?php if(isset($answer['download_count']) && $answer['download_count']) { ?>
<!-- 첨부파일 시작 { -->
<section id="bo_v_file">
<h2>첨부파일</h2>
<ul>
<?php
// 가변 파일
for ($i=0; $i<$answer['download_count']; $i++) {
?>
<li>
<i class="fa fa-download" aria-hidden="true"></i>
<a href="<?php echo $answer['download_href'][$i]; ?>" class="view_file_download" download>
<strong><?php echo $answer['download_source'][$i] ?></strong>
</a>
</li>
<?php
}
?>
</ul>
</section>
<!-- } 첨부파일 끝 -->
<?php } ?>
</div>
</section>
<div class="bo_v_btn">
<a href="<?php echo $rewrite_href; ?>" class="add_qa" title="추가질문">추가질문</a>
</div>
+155
View File
@@ -0,0 +1,155 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<section id="bo_v_ans_form">
<?php
if($is_admin) // 관리자이면 답변등록
{
?>
<h2>답변등록</h2>
<form name="fanswer" method="post" action="./qawrite_update.php" onsubmit="return fwrite_submit(this);" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="qa_id" value="<?php echo $view['qa_id']; ?>">
<input type="hidden" name="w" value="a">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php
$option = '';
$option_hidden = '';
$option = '';
if ($is_dhtml_editor) {
$option_hidden .= '<input type="hidden" name="qa_html" value="1">';
} else {
$option .= "\n".'<input type="checkbox" id="qa_html" name="qa_html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="qa_html">html</label>';
}
echo $option_hidden;
?>
<div class="form_01">
<ul>
<?php if ($option) { ?>
<li>
옵션
<?php echo $option; ?>
</li>
<?php } ?>
<li>
<label for="qa_subject" class="sound_only">제목</label>
<input type="text" name="qa_subject" value="" id="qa_subject" required class="frm_input required full_input" size="50" maxlength="255" placeholder="제목">
</li>
<li class="qa_content_wrap <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>">
<label for="qa_content" class="sound_only">내용<strong>필수</strong></label>
<span class="wr_content">
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
</span>
</li>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_1" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> 파일 #1</span></label>
<input type="file" name="bf_file[1]" id="bf_file_1" title="파일첨부 1 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
</div>
</li>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_2" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> 파일 #2</span></label>
<input type="file" name="bf_file[2]" id="bf_file_2" title="파일첨부 2 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
</div>
</li>
</ul>
</div>
<div class="btn_confirm_re">
<button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">답변등록</button>
</div>
</form>
<script>
function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result)
obj.value = "2";
else
obj.value = "1";
}
else
obj.value = "";
}
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.qa_subject.value,
"content": f.qa_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});
if (subject) {
alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
f.qa_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
if (typeof(ed_qa_content) != "undefined")
ed_qa_content.returnFalse();
else
f.qa_content.focus();
return false;
}
$.ajax({
type: "POST",
url: g5_bbs_url+"/ajax.write.token.php",
data: { 'token_case' : 'qa_write' },
cache: false,
async: false,
dataType: "json",
success: function(data) {
if (typeof data.token !== "undefined") {
token = data.token;
if(typeof f.token === "undefined")
$(f).prepend('<input type="hidden" name="token" value="">');
$(f).find("input[name=token]").val(token);
}
}
});
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>
<?php
}
else
{
?>
<p id="ans_msg">고객님의 문의에 대한 답변을 준비 중입니다.</p>
<?php
}
?>
</section>
+863
View File
@@ -0,0 +1,863 @@
<!DOCTYPE html>
<html lang="en">
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ - 문의작성하기</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// // 자바스크립트에서 사용하는 전역변수 선언
// var g5_url = "http://localhost/tova";
// var g5_bbs_url = "http://localhost/tova/bbs";
// var g5_is_member = "1";
// var g5_is_admin = "";
// var g5_is_mobile = "";
// var g5_bo_table = "";
// var g5_sca = "";
// var g5_editor = "";
// var g5_cookie_domain = "";
// var g5_theme_shop_url = "theme/basic/shop";
// var g5_shop_url = "shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<!-- <script src="../js/common.js?ver=2304171"></script> -->
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="../js/popup.js"></script>
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<!-- //디자인팀 작성 -->
</head>
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 답변등록 -->
<div id="hd_login_msg">최고관리자 최고관리자님 로그인 중 <a href="http://localhost/tova/bbs/logout.php">로그아웃</a></div>
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<!-- 게시물 읽기 시작 { -->
<article id="bo_v">
<header>
<h2 id="bo_v_title">
<?php
echo '<span class="bo_v_cate">'.$view['category'].'</span> '; // 분류 출력 끝
?>
<?php
echo $view['subject']; // 글제목 출력
?>
</h2>
</header>
<section id="bo_v_info">
<h2>페이지 정보</h2>
<span class="sound_only">작성자</span><strong><?php echo $view['name'] ?></strong>
<span class="sound_only">작성일</span><strong class="bo_date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $view['datetime']; ?></strong>
<?php if($view['email'] || $view['hp']) { ?>
<?php if($view['email']) { ?>
<span class="sound_only">이메일</span>
<strong><i class="fa fa-envelope-o" aria-hidden="true"></i> <?php echo $view['email']; ?></strong>
<?php } ?>
<?php if($view['hp']) { ?>
<span class="sound_only">휴대폰</span>
<strong><i class="fa fa-phone" aria-hidden="true"></i> <?php echo $view['hp']; ?></strong>
<?php } ?>
<?php } ?>
<!-- 게시물 상단 버튼 시작 { -->
<div id="bo_v_top">
<?php
ob_start();
?>
<ul class="bo_v_com">
<li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($update_href || $delete_href) { ?>
<li>
<!-- <button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 읽기 옵션</span></button> -->
<button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i></button>
<ul class="more_opt">
<?php if ($update_href) { ?><li><a href="<?php echo $update_href ?>" class="btn_b01 btn" title="수정">수정<i class="fa fa-pencil-square-o" aria-hidden="true"></i></a></li><?php } ?>
<?php if ($delete_href) { ?><li><a href="<?php echo $delete_href ?>" class="btn_b01 btn" onclick="del(this.href); return false;" title="삭제">삭제<i class="fa fa-trash-o" aria-hidden="true"></i></a></li><?php } ?>
</ul>
</li>
<?php } ?>
</ul>
<script>
// 게시판 리스트 옵션
$(".btn_more_opt").on("click", function() {
$(".more_opt").toggle();
})
</script>
<?php
$link_buttons = ob_get_contents();
ob_end_flush();
?>
</div>
<!-- } 게시물 상단 버튼 끝 -->
</section>
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<?php
// 파일 출력
if($view['img_count']) {
echo "<div id=\"bo_v_img\">\n";
for ($i=0; $i<$view['img_count']; $i++) {
//echo $view['img_file'][$i];
echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']);
}
echo "</div>\n";
}
?>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo get_view_thumbnail($view['content'], $qaconfig['qa_image_width']); ?></div>
<!-- } 본문 내용 끝 -->
<?php if($view['qa_type']) { ?>
<div id="bo_v_addq"><a href="<?php echo $rewrite_href; ?>" class="btn_b01">추가질문</a></div>
<?php } ?>
<?php if($view['download_count']) { ?>
<!-- 첨부파일 시작 { -->
<section id="bo_v_file">
<h2>첨부파일</h2>
<ul>
<?php
// 가변 파일
for ($i=0; $i<$view['download_count']; $i++) {
?>
<li>
<i class="fa fa-download" aria-hidden="true"></i>
<a href="<?php echo $view['download_href'][$i]; ?>" class="view_file_download" download>
<strong><?php echo $view['download_source'][$i] ?></strong>
</a>
</li>
<?php
}
?>
</ul>
</section>
<!-- } 첨부파일 끝 -->
<?php } ?>
</section>
<div class="bo_v_bottom">
<?php if ($prev_href || $next_href) { ?>
<ul class="bo_v_nb">
<?php if ($next_href) { ?><li><a href="<?php echo $next_href ?>" class="btn_b01 btn"><i class="fa fa-chevron-left" aria-hidden="true"></i> 이전글</a></li><?php } ?>
<?php if ($prev_href) { ?><li><a href="<?php echo $prev_href ?>" class="btn_b01 btn">다음글 <i class="fa fa-chevron-right" aria-hidden="true"></i></a></li><?php } ?>
</ul>
<?php } ?>
<div class="list_btn"><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span>목록</span></a></div>
</div>
<?php
// 질문글에서 답변이 있으면 답변 출력, 답변이 없고 관리자이면 답변등록폼 출력
if(!$view['qa_type']) {
if($view['qa_status'] && $answer['qa_id'])
include_once($qa_skin_path.'/view.answer.skin.php');
else
include_once($qa_skin_path.'/view.answerform.skin.php');
}
?>
<?php if($view['rel_count']) { ?>
<section id="bo_v_rel">
<h2>연관질문</h2>
<div class="tbl_head01 tbl_wrap">
<table>
<thead>
<tr>
<th scope="col">제목</th>
<th scope="col" width="10%">등록일</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<?php
for($i=0; $i<$view['rel_count']; $i++) {
?>
<tr>
<td>
<span class="bo_cate_link"><?php echo get_text($rel_list[$i]['category']); ?></span>
<a href="<?php echo $rel_list[$i]['view_href']; ?>" class="bo_tit">
<?php echo $rel_list[$i]['subject']; ?>
</a>
</td>
<td class="td_date"><?php echo $rel_list[$i]['date']; ?></td>
<td class="td_stat"><span class="<?php echo ($rel_list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($rel_list[$i]['qa_status'] ? '<i class="fa fa-check-circle" aria-hidden="true"></i> 답변완료' : '<i class="fa fa-times-circle" aria-hidden="true"></i> 답변대기'); ?></span></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</section>
<?php } ?>
</article>
<!-- } 게시판 읽기 끝 -->
<script>
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
// 이미지 리사이즈
$("#bo_v_atc").viewimageresize();
});
</script>
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<!-- <div style='float:left; text-align:center;'>RUN TIME : 0.028378963470459<br></div> -->
<!-- //그누보드 끝 --- FAQ : 답변등록 -->
</div>
<!-- FOOTER -->
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
<script>
AOS.init();
const lenis = new Lenis()
lenis.on('scroll', (e) => {
// console.log(e)
})
lenis.on('scroll', ScrollTrigger.update)
gsap.ticker.add((time)=>{
lenis.raf(time * 1000)
})
gsap.ticker.lagSmoothing(0)
</script>
</div>
</body>
<!-- 상단(헤더) 스크립트 구문 -->
<script>
$(function(){
// footer family site toggle
$('.family_btn').click(function(e){
e.stopPropagation();
$('.family_list, .family_btn').toggleClass('family_on');
});
$(document).click(function(e){
if(!$(e.target).closest('.family_wrap').length){
$('.family_list, .family_btn').removeClass('family_on');
}
});
});
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// $('#pop_agreement').hide();
// $('#pop_join').hide();
// $('#pop_mypage01').hide();
// $('#pop_search').hide();
// $('#pop_mypage02').hide();
// $('#pop_mypage03').hide();
// $('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qaview.php?qa_id=<?php echo $view['qa_num'] ?>";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+852
View File
@@ -0,0 +1,852 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>FAQ - 문의작성하기</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "http://localhost/tova";
var g5_bbs_url = "http://localhost/tova/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_is_mobile = "";
var g5_bo_table = "";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = "";
var g5_theme_shop_url = "theme/basic/shop";
var g5_shop_url = "shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<script src="../js/common.js?ver=2304171"></script>
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
<!-- <script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script> -->
<!-- <script type="text/javascript" src="js/common.js"></script> -->
<script type="text/javascript" src="../js/popup.js"></script>
<!-- //디자인팀 작성 -->
</head>
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<h1><a href="../index.php"></a></h1>
<div class="menu_my">
<img src="../img/ico_my.svg" alt="">
<ul class="menu_my_list" style="display: none;">
<li id="my_join2" class="my_join2">
<?
if ($_SESSION['is_admin']=="super"){
echo "<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>";
} else {
echo "<a href='javascript:mypage01();'>마이페이지</a>";
}
?>
</li>
<li id="my_login2" class="my_login2"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
<li id="my_join" class="my_join"><a href="javascript:agreement();">회원가입</a></li>
<li id="my_login" class="my_login"><a href="javascript:login();">로그인</a></li>
</ul>
</div>
<div class="menu_ham"><a href="javascript:sitemap();"><div></div><div></div><div></div></a></div>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>TOVA 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 답변등록 -->
<div id="hd_login_msg">최고관리자 최고관리자님 로그인 중 <a href="http://localhost/tova/bbs/logout.php">로그아웃</a></div>
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<!-- 게시물 읽기 시작 { -->
<article id="bo_v">
<header>
<h2 id="bo_v_title">
<?php
echo '<span class="bo_v_cate">'.$view['category'].'</span> '; // 분류 출력 끝
?>
<?php
echo $view['subject']; // 글제목 출력
?>
</h2>
</header>
<section id="bo_v_info">
<h2>페이지 정보</h2>
<span class="sound_only">작성자</span><strong><?php echo $view['name'] ?></strong>
<span class="sound_only">작성일</span><strong class="bo_date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $view['datetime']; ?></strong>
<?php if($view['email'] || $view['hp']) { ?>
<?php if($view['email']) { ?>
<span class="sound_only">이메일</span>
<strong><i class="fa fa-envelope-o" aria-hidden="true"></i> <?php echo $view['email']; ?></strong>
<?php } ?>
<?php if($view['hp']) { ?>
<span class="sound_only">휴대폰</span>
<strong><i class="fa fa-phone" aria-hidden="true"></i> <?php echo $view['hp']; ?></strong>
<?php } ?>
<?php } ?>
<!-- 게시물 상단 버튼 시작 { -->
<div id="bo_v_top">
<?php
ob_start();
?>
<ul class="bo_v_com">
<li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($update_href || $delete_href) { ?>
<li>
<!-- <button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 읽기 옵션</span></button> -->
<button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i></button>
<ul class="more_opt">
<?php if ($update_href) { ?><li><a href="<?php echo $update_href ?>" class="btn_b01 btn" title="수정">수정<i class="fa fa-pencil-square-o" aria-hidden="true"></i></a></li><?php } ?>
<?php if ($delete_href) { ?><li><a href="<?php echo $delete_href ?>" class="btn_b01 btn" onclick="del(this.href); return false;" title="삭제">삭제<i class="fa fa-trash-o" aria-hidden="true"></i></a></li><?php } ?>
</ul>
</li>
<?php } ?>
</ul>
<script>
// 게시판 리스트 옵션
$(".btn_more_opt").on("click", function() {
$(".more_opt").toggle();
})
</script>
<?php
$link_buttons = ob_get_contents();
ob_end_flush();
?>
</div>
<!-- } 게시물 상단 버튼 끝 -->
</section>
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<?php
// 파일 출력
if($view['img_count']) {
echo "<div id=\"bo_v_img\">\n";
for ($i=0; $i<$view['img_count']; $i++) {
//echo $view['img_file'][$i];
echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']);
}
echo "</div>\n";
}
?>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo get_view_thumbnail($view['content'], $qaconfig['qa_image_width']); ?></div>
<!-- } 본문 내용 끝 -->
<?php if($view['qa_type']) { ?>
<div id="bo_v_addq"><a href="<?php echo $rewrite_href; ?>" class="btn_b01">추가질문</a></div>
<?php } ?>
<?php if($view['download_count']) { ?>
<!-- 첨부파일 시작 { -->
<section id="bo_v_file">
<h2>첨부파일</h2>
<ul>
<?php
// 가변 파일
for ($i=0; $i<$view['download_count']; $i++) {
?>
<li>
<i class="fa fa-download" aria-hidden="true"></i>
<a href="<?php echo $view['download_href'][$i]; ?>" class="view_file_download" download>
<strong><?php echo $view['download_source'][$i] ?></strong>
</a>
</li>
<?php
}
?>
</ul>
</section>
<!-- } 첨부파일 끝 -->
<?php } ?>
</section>
<?php if ($prev_href || $next_href) { ?>
<ul class="bo_v_nb">
<?php if ($prev_href) { ?><li><a href="<?php echo $prev_href ?>" class="btn_b01 btn"><i class="fa fa-chevron-left" aria-hidden="true"></i> 다음글</a></li><?php } ?>
<?php if ($next_href) { ?><li><a href="<?php echo $next_href ?>" class="btn_b01 btn">이전글 <i class="fa fa-chevron-right" aria-hidden="true"></i></a></li><?php } ?>
</ul>
<?php } ?>
<?php
// 질문글에서 답변이 있으면 답변 출력, 답변이 없고 관리자이면 답변등록폼 출력
if(!$view['qa_type']) {
if($view['qa_status'] && $answer['qa_id'])
include_once($qa_skin_path.'/view.answer.skin.php');
else
include_once($qa_skin_path.'/view.answerform.skin.php');
}
?>
<?php if($view['rel_count']) { ?>
<section id="bo_v_rel">
<h2>연관질문</h2>
<div class="tbl_head01 tbl_wrap">
<table>
<thead>
<tr>
<th scope="col">제목</th>
<th scope="col" width="10%">등록일</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<?php
for($i=0; $i<$view['rel_count']; $i++) {
?>
<tr>
<td>
<span class="bo_cate_link"><?php echo get_text($rel_list[$i]['category']); ?></span>
<a href="<?php echo $rel_list[$i]['view_href']; ?>" class="bo_tit">
<?php echo $rel_list[$i]['subject']; ?>
</a>
</td>
<td class="td_date"><?php echo $rel_list[$i]['date']; ?></td>
<td class="td_stat"><span class="<?php echo ($rel_list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($rel_list[$i]['qa_status'] ? '<i class="fa fa-check-circle" aria-hidden="true"></i> 답변완료' : '<i class="fa fa-times-circle" aria-hidden="true"></i> 답변대기'); ?></span></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</section>
<?php } ?>
</article>
<!-- } 게시판 읽기 끝 -->
<script>
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
// 이미지 리사이즈
$("#bo_v_atc").viewimageresize();
});
</script>
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<!-- <div style='float:left; text-align:center;'>RUN TIME : 0.028378963470459<br></div> -->
<!-- //그누보드 끝 --- FAQ : 답변등록 -->
</div>
<!-- FOOTER -->
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<div class="footer_close"></div>
<div class="footer_wrap">
<img class="logo_baron" src="<?php echo G5_URL ?>/img/baron_logo.svg" alt="">
<span class="ceo">대표이사 : 장종찬</span>
<span class="btn_privacy"><a href="javascript:privacy('privacy');"><em>개인정보 처리방침</em></a><a href="javascript:privacy('agreement');">이용약관</a></span>
<span class="copyright">© 2017 Baron. All rights reserved.</span>
<ul class="footer_menu">
<li><a href="<?php echo G5_BBS_URL ?>/value.php">EG-BIM</a></li>
<li><a href="<?php echo G5_BBS_URL ?>/interface.php">인터페이스</a></li>
<li><a href="<?php echo G5_BBS_URL ?>/primary.php">주요기능</a></li>
<li><a href="<?php echo G5_BBS_URL ?>/floorplan.php">도면관리</a></li>
<li><a href="<?php echo G5_BBS_URL ?>/forbim.php">for BIM</a></li>
</ul>
<div class="footer_sitemap">
<div class="family_wrap">
<div class="family_btn"><span>Family Site</span><i></i></div>
<ul class="family_list">
<li><a href="http://k-tova.com" target="_blank">TOVA</a></li>
<li><a href="" target="_blank">GAIA</a></li>
<li><a href="" target="_blank">바론컨설턴트</a></li>
</ul>
</div>
</div>
</div>
</footer>
<!-- //FOOTER -->
</div>
</body>
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').hide();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qaview.php?qa_id=<?php echo $view['qa_num'] ?>";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+827
View File
@@ -0,0 +1,827 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>FAQ - 문의작성하기</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "http://localhost/tova";
var g5_bbs_url = "http://localhost/tova/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_is_mobile = "";
var g5_bo_table = "";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = "";
var g5_theme_shop_url = "theme/basic/shop";
var g5_shop_url = "shop";
</script>
<!-- <script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<script src="../js/common.js?ver=2304171"></script>
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script> -->
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
<!-- <script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script> -->
<!-- <script type="text/javascript" src="js/common.js"></script> -->
<script type="text/javascript" src="../js/popup.js"></script>
<!-- //디자인팀 작성 -->
</head>
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 답변등록 -->
<div id="hd_login_msg">최고관리자 최고관리자님 로그인 중 <a href="http://localhost/tova/bbs/logout.php">로그아웃</a></div>
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<!-- 게시물 읽기 시작 { -->
<article id="bo_v">
<header>
<h2 id="bo_v_title">
<?php
echo '<span class="bo_v_cate">'.$view['category'].'</span> '; // 분류 출력 끝
?>
<?php
echo $view['subject']; // 글제목 출력
?>
</h2>
</header>
<section id="bo_v_info">
<h2>페이지 정보</h2>
<span class="sound_only">작성자</span><strong><?php echo $view['name'] ?></strong>
<span class="sound_only">작성일</span><strong class="bo_date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $view['datetime']; ?></strong>
<?php if($view['email'] || $view['hp']) { ?>
<?php if($view['email']) { ?>
<span class="sound_only">이메일</span>
<strong><i class="fa fa-envelope-o" aria-hidden="true"></i> <?php echo $view['email']; ?></strong>
<?php } ?>
<?php if($view['hp']) { ?>
<span class="sound_only">휴대폰</span>
<strong><i class="fa fa-phone" aria-hidden="true"></i> <?php echo $view['hp']; ?></strong>
<?php } ?>
<?php } ?>
<!-- 게시물 상단 버튼 시작 { -->
<div id="bo_v_top">
<?php
ob_start();
?>
<ul class="bo_v_com">
<li><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($update_href || $delete_href) { ?>
<li>
<!-- <button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 읽기 옵션</span></button> -->
<button type="button" class="btn_more_opt btn_b01 btn" title="게시판 읽기 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i></button>
<ul class="more_opt">
<?php if ($update_href) { ?><li><a href="<?php echo $update_href ?>" class="btn_b01 btn" title="수정">수정<i class="fa fa-pencil-square-o" aria-hidden="true"></i></a></li><?php } ?>
<?php if ($delete_href) { ?><li><a href="<?php echo $delete_href ?>" class="btn_b01 btn" onclick="del(this.href); return false;" title="삭제">삭제<i class="fa fa-trash-o" aria-hidden="true"></i></a></li><?php } ?>
</ul>
</li>
<?php } ?>
</ul>
<script>
// 게시판 리스트 옵션
$(".btn_more_opt").on("click", function() {
$(".more_opt").toggle();
})
</script>
<?php
$link_buttons = ob_get_contents();
ob_end_flush();
?>
</div>
<!-- } 게시물 상단 버튼 끝 -->
</section>
<section id="bo_v_atc">
<h2 id="bo_v_atc_title">본문</h2>
<?php
// 파일 출력
if($view['img_count']) {
echo "<div id=\"bo_v_img\">\n";
for ($i=0; $i<$view['img_count']; $i++) {
//echo $view['img_file'][$i];
echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']);
}
echo "</div>\n";
}
?>
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo get_view_thumbnail($view['content'], $qaconfig['qa_image_width']); ?></div>
<!-- } 본문 내용 끝 -->
<?php if($view['qa_type']) { ?>
<div id="bo_v_addq"><a href="<?php echo $rewrite_href; ?>" class="btn_b01">추가질문</a></div>
<?php } ?>
<?php if($view['download_count']) { ?>
<!-- 첨부파일 시작 { -->
<section id="bo_v_file">
<h2>첨부파일</h2>
<ul>
<?php
// 가변 파일
for ($i=0; $i<$view['download_count']; $i++) {
?>
<li>
<i class="fa fa-download" aria-hidden="true"></i>
<a href="<?php echo $view['download_href'][$i]; ?>" class="view_file_download" download>
<strong><?php echo $view['download_source'][$i] ?></strong>
</a>
</li>
<?php
}
?>
</ul>
</section>
<!-- } 첨부파일 끝 -->
<?php } ?>
</section>
<div class="bo_v_bottom">
<?php if ($prev_href || $next_href) { ?>
<ul class="bo_v_nb">
<?php if ($next_href) { ?><li><a href="<?php echo $next_href ?>" class="btn_b01 btn"><i class="fa fa-chevron-left" aria-hidden="true"></i> 이전글</a></li><?php } ?>
<?php if ($prev_href) { ?><li><a href="<?php echo $prev_href ?>" class="btn_b01 btn">다음글 <i class="fa fa-chevron-right" aria-hidden="true"></i></a></li><?php } ?>
</ul>
<?php } ?>
<div class="list_btn"><a href="<?php echo $list_href ?>" class="btn_b01 btn" title="목록"><i class="fa fa-list" aria-hidden="true"></i><span>목록</span></a></div>
</div>
<?php
// 질문글에서 답변이 있으면 답변 출력, 답변이 없고 관리자이면 답변등록폼 출력
if(!$view['qa_type']) {
if($view['qa_status'] && $answer['qa_id'])
include_once($qa_skin_path.'/view.answer.skin.php');
else
include_once($qa_skin_path.'/view.answerform.skin.php');
}
?>
<?php if($view['rel_count']) { ?>
<section id="bo_v_rel">
<h2>연관질문</h2>
<div class="tbl_head01 tbl_wrap">
<table>
<thead>
<tr>
<th scope="col">제목</th>
<th scope="col" width="10%">등록일</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<?php
for($i=0; $i<$view['rel_count']; $i++) {
?>
<tr>
<td>
<span class="bo_cate_link"><?php echo get_text($rel_list[$i]['category']); ?></span>
<a href="<?php echo $rel_list[$i]['view_href']; ?>" class="bo_tit">
<?php echo $rel_list[$i]['subject']; ?>
</a>
</td>
<td class="td_date"><?php echo $rel_list[$i]['date']; ?></td>
<td class="td_stat"><span class="<?php echo ($rel_list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($rel_list[$i]['qa_status'] ? '<i class="fa fa-check-circle" aria-hidden="true"></i> 답변완료' : '<i class="fa fa-times-circle" aria-hidden="true"></i> 답변대기'); ?></span></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</section>
<?php } ?>
</article>
<!-- } 게시판 읽기 끝 -->
<script>
$(function() {
$("a.view_image").click(function() {
window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
return false;
});
// 이미지 리사이즈
$("#bo_v_atc").viewimageresize();
});
</script>
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<!-- <div style='float:left; text-align:center;'>RUN TIME : 0.028378963470459<br></div> -->
<!-- //그누보드 끝 --- FAQ : 답변등록 -->
</div>
<!-- FOOTER -->
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
</div>
</body>
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').hide();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qaview.php?qa_id=<?php echo $view['qa_num'] ?>";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+847
View File
@@ -0,0 +1,847 @@
<!DOCTYPE html>
<html lang="en">
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ - 문의작성하기</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// // 자바스크립트에서 사용하는 전역변수 선언
// var g5_url = "http://localhost/tova";
// var g5_bbs_url = "http://localhost/tova/bbs";
// var g5_is_member = "1";
// var g5_is_admin = "";
// var g5_is_mobile = "";
// var g5_bo_table = "";
// var g5_sca = "";
// var g5_editor = "";
// var g5_cookie_domain = "";
// var g5_theme_shop_url = "theme/basic/shop";
// var g5_shop_url = "shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<!-- <script src="../js/common.js?ver=2304171"></script> -->
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css" type="text/css"/>
<link rel="stylesheet" href="https://unpkg.com/lenis@1.1.9/dist/lenis.css">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/lenis@1.1.9/dist/lenis.min.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="../js/popup.js"></script>
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<!-- //디자인팀 작성 -->
</head>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 문의작성하기 -->
<!-- <div id="hd_login_msg">송대일님 로그인 중 <a href="http://localhost/tova/bbs/logout.php">로그아웃</a></div> -->
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<section id="bo_w">
<h2>1:1문의 작성</h2>
<!-- 게시물 작성/수정 시작 { -->
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="qa_id" value="<?php echo $qa_id ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php
$option = '';
$option_hidden = '';
$option = '';
if ($is_dhtml_editor) {
$option_hidden .= '<input type="hidden" name="qa_html" value="1">';
} else {
$option .= "\n".'<input type="checkbox" id="qa_html" name="qa_html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="qa_html">html</label>';
}
echo $option_hidden;
?>
<div class="form_01">
<ul>
<?php if ($category_option) { ?>
<li class="bo_w_select write_div">
<label for="qa_category" class="sound_only">분류<strong>필수</strong></label>
<select name="qa_category" id="qa_category" required >
<option value="">분류를 선택하세요</option>
<?php echo $category_option ?>
</select>
</li>
<?php } ?>
<?php if ($is_email) { ?>
<li class="bo_w_mail chk_box">
<label for="qa_email" class="sound_only">이메일</label>
<input type="text" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input full_input email" size="50" maxlength="100" placeholder="이메일" readonly>
<input type="checkbox" name="qa_email_recv" id="qa_email_recv" value="1" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?> class="selec_chk">
<label for="qa_email_recv" class="frm_info"><span></span>댓글 답변받기</label>
</li>
<?php } ?>
<?php if ($is_hp) { ?>
<li class="bo_w_hp chk_box">
<label for="qa_hp" class="sound_only">휴대폰</label>
<input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input full_input" size="30" placeholder="휴대폰" readonly>
<?php if($qaconfig['qa_use_sms']) { ?>
<input type="checkbox" name="qa_sms_recv" id="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?> class="selec_chk">
<label for="qa_sms_recv" class="frm_info"><span></span>답변등록 SMS알림 수신</label>
<?php } ?>
</li>
<?php } ?>
<li class="bo_w_sbj">
<label for="qa_subject" class="sound_only">제목<strong class="sound_only">필수</strong></label>
<input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="frm_input full_input required" size="50" maxlength="255" placeholder="제목">
</li>
<li class="qa_content_wrap <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>">
<label for="qa_content" class="sound_only">내용<strong class="sound_only">필수</strong></label>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
</li>
<?php if ($option) { ?>
<li>
옵션
<?php echo $option; ?>
</li>
<?php } ?>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_1" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> </span></label>
<input type="file" name="bf_file[1]" id="bf_file_1" title="파일첨부 1 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
<?php if($w == 'u' && $write['qa_file1']) { ?>
<input type="checkbox" id="bf_file_del1" name="bf_file_del[1]" value="1"> <label for="bf_file_del1"><?php echo $write['qa_source1']; ?> 파일 삭제</label>
<?php } ?>
</div>
</li>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_2" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> </span></label>
<input type="file" name="bf_file[2]" id="bf_file_2" title="파일첨부 2 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
<?php if($w == 'u' && $write['qa_file2']) { ?>
<input type="checkbox" id="bf_file_del2" name="bf_file_del[2]" value="1"> <label for="bf_file_del2"><?php echo $write['qa_source2']; ?> 파일 삭제</label>
<?php } ?>
</div>
</li>
</ul>
</div>
<div class="btn_confirm write_div">
<a href="<?php echo $list_href; ?>" class="btn_cancel btn">취소</a>
<button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">작성완료</button>
</div>
</form>
<script>
function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result)
obj.value = "2";
else
obj.value = "1";
}
else
obj.value = "";
}
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.qa_subject.value,
"content": f.qa_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});
if (subject) {
alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
f.qa_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
if (typeof(ed_qa_content) != "undefined")
ed_qa_content.returnFalse();
else
f.qa_content.focus();
return false;
}
<?php if ($is_hp) { ?>
var hp = f.qa_hp.value.replace(/[0-9\-]/g, "");
if(hp.length > 0) {
alert("휴대폰번호는 숫자, - 으로만 입력해 주십시오.");
return false;
}
<?php } ?>
$.ajax({
type: "POST",
url: g5_bbs_url+"/ajax.write.token.php",
data: { 'token_case' : 'qa_write' },
cache: false,
async: false,
dataType: "json",
success: function(data) {
if (typeof data.token !== "undefined") {
token = data.token;
if(typeof f.token === "undefined")
$(f).prepend('<input type="hidden" name="token" value="">');
$(f).find("input[name=token]").val(token);
}
}
});
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>
</section>
<!-- } 게시물 작성/수정 끝 -->
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<!-- //그누보드 끝 --- FAQ : 문의작성하기 -->
</div>
<!-- FOOTER -->
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
<script>
AOS.init();
const lenis = new Lenis()
lenis.on('scroll', (e) => {
// console.log(e)
})
lenis.on('scroll', ScrollTrigger.update)
gsap.ticker.add((time)=>{
lenis.raf(time * 1000)
})
gsap.ticker.lagSmoothing(0)
</script>
</div>
</body>
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
// $('.btn_close').hide();
// $('#pop_login').hide();
// $('#pop_agreement').hide();
// $('#pop_join').hide();
// $('#pop_mypage01').hide();
// $('#pop_search').hide();
// $('#pop_mypage02').hide();
// $('#pop_mypage03').hide();
// $('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
// ------유나 추가
$('.popup_wrap').hide();
$('body').css('overflow', ''); // 기본 스크롤 상태로 복귀
lenis.start();
console.log('로그인 완료 및 lenis 재시작/유나 추가')
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qawrite.php";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+825
View File
@@ -0,0 +1,825 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-STZ2R5Q7HG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-STZ2R5Q7HG');
</script>
<meta charset="utf-8">
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>FAQ - 문의작성하기</title>
<!-- 그누보드 작성 -->
<link rel="stylesheet" href="../theme/basic/css/default.css?ver=2303229">
<link rel="stylesheet" href="../js/font-awesome/css/font-awesome.min.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/connect/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/popular/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/qa/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/outlogin/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/latest/notice/style.css?ver=2303229">
<link rel="stylesheet" href="../theme/basic/skin/visit/basic/style.css?ver=2303229">
<link rel="stylesheet" href="../js/owlcarousel/owl.carousel.min.css?ver=2303229">
<!--[if lte IE 8]>
<script src="http://localhost/tova/js/html5.js"></script>
<![endif]-->
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "http://localhost/tova";
var g5_bbs_url = "http://localhost/tova/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_is_mobile = "";
var g5_bo_table = "";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = "";
var g5_theme_shop_url = "theme/basic/shop";
var g5_shop_url = "shop";
</script>
<script src="../js/jquery-1.12.4.min.js?ver=2304171"></script>
<script src="../js/jquery-migrate-1.4.1.min.js?ver=2304171"></script>
<script src="../js/jquery.menu.js?ver=2304171"></script>
<script src="../js/common.js?ver=2304171"></script>
<script src="../js/wrest.js?ver=2304171"></script>
<script src="../js/placeholders.min.js?ver=2304171"></script>
<script src="../js/owlcarousel/owl.carousel.min.js?ver=2304171"></script>
<script src="../js/jquery.bxslider.js?ver=2304171"></script>
<!-- //그누보드 작성 -->
<!-- 디자인팀 작성 -->
<link rel="stylesheet" href="../css/reset.css"/>
<link rel="stylesheet" href="../css/font.css"/>
<link rel="stylesheet" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollToPlugin.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/common.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/popup.js"></script>
<script type="text/javascript" src="<?php echo G5_URL ?>/js/index.js"></script>
<!-- <script type="text/javascript" src="js/common.js"></script> -->
<script type="text/javascript" src="../js/popup.js"></script>
<!-- //디자인팀 작성 -->
</head>
<body>
<div class="wrapper">
<input id="hid_mb_id" type="hidden" value="<?echo $_SESSION['session_id'];?>"></input>
<!-- HEADER -->
<header class="js__header">
<?php include_once($member_skin_path.'/main_header.skin.php'); ?>
</header>
<!-- //Header -->
<!-- floating_menu -->
<div class="floating_menu">
<ul>
<li class="floating_faq"><a href="<?php echo G5_BBS_URL ?>/faq.php">
<i></i>
<span>FAQ</span>
</a></li>
<li class="floating_buy"><a href="<?php echo G5_BBS_URL ?>/buy.php">
<i></i>
<span>구매하기</span>
</a></li>
</ul>
</div>
<!-- //floating_menu -->
<!-- 모든 팝업페이지 경로 -->
<?php
include_once($member_skin_path.'/login.skin.php');
include_once($member_skin_path.'/mypage01.skin.php');
include_once($member_skin_path.'/register.skin.php');
include_once($member_skin_path.'/register_form.skin.php');
include_once($member_skin_path.'/mypage02.skin.php');
include_once($member_skin_path.'/mypage03.skin.php');
include_once($member_skin_path.'/sitemap.skin.php');
include_once($member_skin_path.'/privacy.skin.php');
include_once($member_skin_path.'/password_lost.skin.php');
?>
<!-- 모든 팝업페이지 경로 -->
<div class="container faq">
<section class="intro">
<div class="top">
<h2 class="js__reveal rTB">FAQ</h2>
<span>EG-BIM 관련 문의하기</span>
</div>
<ul class="sub_tab">
<li><a href="<?php echo G5_BBS_URL ?>/faq.php">자주하는 질문</a></li>
<li class="on"><a href="<?php echo G5_BBS_URL ?>/qalist.php">1:1 문의하기</a></li>
</ul>
</section>
<span class="sub_tit">1:1 문의하기</span>
<!-- 그누보드 시작 --- FAQ : 문의작성하기 -->
<!-- <div id="hd_login_msg">송대일님 로그인 중 <a href="http://localhost/tova/bbs/logout.php">로그아웃</a></div> -->
<hr>
<!-- 콘텐츠 시작 { -->
<div id="wrapper">
<div id="container_wr">
<div id="container">
<h2 id="container_title"><span title="1:1문의">1:1문의</span></h2>
<section id="bo_w">
<h2>1:1문의 작성</h2>
<!-- 게시물 작성/수정 시작 { -->
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="qa_id" value="<?php echo $qa_id ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php
$option = '';
$option_hidden = '';
$option = '';
if ($is_dhtml_editor) {
$option_hidden .= '<input type="hidden" name="qa_html" value="1">';
} else {
$option .= "\n".'<input type="checkbox" id="qa_html" name="qa_html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="qa_html">html</label>';
}
echo $option_hidden;
?>
<div class="form_01">
<ul>
<?php if ($category_option) { ?>
<li class="bo_w_select write_div">
<label for="qa_category" class="sound_only">분류<strong>필수</strong></label>
<select name="qa_category" id="qa_category" required >
<option value="">분류를 선택하세요</option>
<?php echo $category_option ?>
</select>
</li>
<?php } ?>
<?php if ($is_email) { ?>
<li class="bo_w_mail chk_box">
<label for="qa_email" class="sound_only">이메일</label>
<input type="text" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input full_input email" size="50" maxlength="100" placeholder="이메일" readonly>
<input type="checkbox" name="qa_email_recv" id="qa_email_recv" value="1" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?> class="selec_chk">
<label for="qa_email_recv" class="frm_info"><span></span>댓글 답변받기</label>
</li>
<?php } ?>
<?php if ($is_hp) { ?>
<li class="bo_w_hp chk_box">
<label for="qa_hp" class="sound_only">휴대폰</label>
<input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input full_input" size="30" placeholder="휴대폰" readonly>
<?php if($qaconfig['qa_use_sms']) { ?>
<input type="checkbox" name="qa_sms_recv" id="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?> class="selec_chk">
<label for="qa_sms_recv" class="frm_info"><span></span>답변등록 SMS알림 수신</label>
<?php } ?>
</li>
<?php } ?>
<li class="bo_w_sbj">
<label for="qa_subject" class="sound_only">제목<strong class="sound_only">필수</strong></label>
<input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="frm_input full_input required" size="50" maxlength="255" placeholder="제목">
</li>
<li class="qa_content_wrap <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>">
<label for="qa_content" class="sound_only">내용<strong class="sound_only">필수</strong></label>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
</li>
<?php if ($option) { ?>
<li>
옵션
<?php echo $option; ?>
</li>
<?php } ?>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_1" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> </span></label>
<input type="file" name="bf_file[1]" id="bf_file_1" title="파일첨부 1 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
<?php if($w == 'u' && $write['qa_file1']) { ?>
<input type="checkbox" id="bf_file_del1" name="bf_file_del[1]" value="1"> <label for="bf_file_del1"><?php echo $write['qa_source1']; ?> 파일 삭제</label>
<?php } ?>
</div>
</li>
<li class="bo_w_flie">
<div class="file_wr">
<label for="bf_file_2" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> </span></label>
<input type="file" name="bf_file[2]" id="bf_file_2" title="파일첨부 2 : 용량 <?php echo $upload_max_filesize; ?> 이하만 업로드 가능" class="frm_file">
<?php if($w == 'u' && $write['qa_file2']) { ?>
<input type="checkbox" id="bf_file_del2" name="bf_file_del[2]" value="1"> <label for="bf_file_del2"><?php echo $write['qa_source2']; ?> 파일 삭제</label>
<?php } ?>
</div>
</li>
</ul>
</div>
<div class="btn_confirm write_div">
<a href="<?php echo $list_href; ?>" class="btn_cancel btn">취소</a>
<button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">작성완료</button>
</div>
</form>
<script>
function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result)
obj.value = "2";
else
obj.value = "1";
}
else
obj.value = "";
}
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.qa_subject.value,
"content": f.qa_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});
if (subject) {
alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
f.qa_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
if (typeof(ed_qa_content) != "undefined")
ed_qa_content.returnFalse();
else
f.qa_content.focus();
return false;
}
<?php if ($is_hp) { ?>
var hp = f.qa_hp.value.replace(/[0-9\-]/g, "");
if(hp.length > 0) {
alert("휴대폰번호는 숫자, - 으로만 입력해 주십시오.");
return false;
}
<?php } ?>
$.ajax({
type: "POST",
url: g5_bbs_url+"/ajax.write.token.php",
data: { 'token_case' : 'qa_write' },
cache: false,
async: false,
dataType: "json",
success: function(data) {
if (typeof data.token !== "undefined") {
token = data.token;
if(typeof f.token === "undefined")
$(f).prepend('<input type="hidden" name="token" value="">');
$(f).find("input[name=token]").val(token);
}
}
});
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>
</section>
<!-- } 게시물 작성/수정 끝 -->
</div>
</div>
</div>
<!-- } 콘텐츠 끝 -->
<hr>
<script>
$(function() {
// 폰트 리사이즈 쿠키있으면 실행
font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>
<!-- //그누보드 끝 --- FAQ : 문의작성하기 -->
</div>
<!-- FOOTER -->
<button class="btn_top js__top" onclick="window.scrollTo(0,0);"><div class="arrow"></div></button>
<footer class="footer_off">
<?php include_once($member_skin_path.'/main_footer.skin.php'); ?>
</footer>
<!-- //FOOTER -->
</div>
</body>
<!-- 상단(헤더) 스크립트 구문 -->
<script>
// 회원 탈퇴
function member_leave() {
if (confirm("회원에서 탈퇴 하시겠습니까?"))
location.href = '<?php echo G5_BBS_URL ?>/member_leave.php';
}
// 회원 탈퇴
if($('#hid_mb_id').val()==''){
document.getElementById('my_join2').style.display = 'none';
document.getElementById('my_login2').style.display = 'none';
document.getElementById('my_join').style.display = '';
document.getElementById('my_login').style.display = '';
}else{
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
}
let x = document.cookie;
if(x.includes("tmp_1=John")){
deleteCookie("tmp_1");
$('#pop_mypage02').show();
}
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/bbs;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/faq;";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/egbim/qa;";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//alert(getCookie("tmp_1"));
//로그인
$('#flogin button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#login_id').val();
let mb_password = $('#login_pw').val();
//alert('<?php echo G5_URL ?>/bbs/login.php');
$.ajax({
url : '<?php echo G5_URL ?>/bbs/login_check_tova.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success" || ss.replace('"','').replace('"','') == "super"){
//$(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#hid_mb_id').val(mb_id);
document.getElementById('my_join2').style.display = '';
document.getElementById('my_login2').style.display = '';
document.getElementById('my_join').style.display = 'none';
document.getElementById('my_login').style.display = 'none';
//location.href="<?php echo G5_URL ?>/bbs/session.php?id="+mb_id;
if(ss.replace('"','').replace('"','') == "super"){
$('#my_join2').html("<a href='http://eg-bim.com/egbim/adm/index.php' target='_blank'>관리페이지</a>");
}else{
$('#my_join2').html("<a href='javascript:mypage01();'>마이페이지</a>");
}
}else
{
alert(trim(ss));
}
},
error : function(err){
//alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
//회원가입 약관동의
$('#fregister button[type=submit]').click(function(e){
e.preventDefault();
let agree11 = $('#agree11').val();
let agree21 = $('#agree21').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form.php',
type : "POST",
datatype : "json",
contentType: 'application/json; charset=utf-8',
data : {
'agree11' : agree11,
'agree21' : agree21
},
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
},
error : function(err){
alert(err);
}
});
});
//회원가입 정보입력
$('#fregisterform button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#reg_mb_id').val();
let mb_password = $('#reg_mb_password').val();
let mb_password_re = $('#reg_mb_password_re').val();
let mb_name = $('#reg_mb_name').val();
let mb_email1 = $('#reg_mb_email1').val();
let mb_email2 = $('#mb_email2').val();
let reg_domain2 = $('#register_domain2').val();
let mb_hp = $('#reg_mb_hp').val();
let mb_comp = $('#reg_mb_comp').val();
let mb_comp_team = $('#reg_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
if (mb_email2 == "type"){
mb_email2 = '@' + reg_domain2;
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/register_form_update.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss){
// $(".popup_wrap").show();
$('.btn_close').hide();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').hide();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원가입이 완료됐습니다.\n다시 로그인 해주세요');
$('#reg_mb_id').val('');
$('#reg_mb_password').val('');
$('#reg_mb_password_re').val('');
$('#reg_mb_name').val('');
$('#reg_mb_email1').val('');
$('#reg_mb_hp').val('');
$('#reg_mb_comp').val('');
$('#reg_mb_comp_team').val('');
$('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
// $.removeCookie(mb_id,{path:'<?php //echo G5_URL ?>/bbs/register_form_update.php'});
});
//회원정보 수정
$('#fregisterform_up button[type=submit]').click(function(e){
e.preventDefault();
let mb_id = $('#update_mb_id').val();
let mb_password = $('#update_mb_password').val();
let mb_password_re = $('#update_mb_password_re').val();
let mb_name = $('#update_mb_name').val();
let mb_email1 = $('#update_mb_email1').val();
let mb_email2 = $('#update_mb_email2').val();
let update_domain2 = $('#update_domain2').val();
if (mb_email2 == "type"){
mb_email2 = '@' + update_domain2;
}
let mb_hp = $('#update_mb_hp').val();
let mb_comp = $('#update_mb_comp').val();
let mb_comp_team = $('#update_mb_comp_team').val();
//alert(mb_password+' '+mb_password_re+' '+mb_name+' '+mb_email1+' '+mb_email2+' '+mb_hp+' '+mb_comp+' '+mb_comp_team);
if (mb_id.length < 4) {
alert('1');
alert("아이디를 4글자 이상 입력하십시오.");
mb_id.focus();
return false;
}
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi
if (special_pattern.test(mb_id) == true) {
alert("아이디는 특수문자를 사용할수 없습니다.");
mb_id.focus();
return false;
}
// 비밀번호 검사
if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(mb_password)){
alert('비밀번호는 숫자+영문자+특수문자 조합으로 8자리 이상 사용해야 합니다.');
mb_password.focus();
return false;
}
// if (mb_password_re.length < 8 || mb_password.length < 8) {
// alert("비밀번호를 8글자 이상 입력하십시오.");
// mb_password.focus();
// return false;
// }
// 비밀번호 & 2차비밀번호 검사
if (mb_password != mb_password_re) {
alert(mb_password_re);
alert("비밀번호가 같지 않습니다.");
mb_password_re.focus();
return false;
}
// 이름 검사
if (mb_name == "") {
if (mb_name.length < 1) {
alert("이름을 입력하십시오.");
mb_name.focus();
return false;
}
}
// 메일 검사
if (mb_email1 == "") {
if (mb_email1.length < 1) {
alert("메일 주소를 입력하십시오.");
mb_email1.focus();
return false;
}
}
// 핸드폰 번호 검사
if (mb_hp.length < 11) {
alert("휴대전화번호 11자리를 입력하십시오.");
mb_hp.focus();
return false;
}
if(isNaN(mb_hp)){
alert("휴대전화번호는 숫자만 입력가능합니다.");
mb_hp.focus();
return false;
}
// 회사명 검사
if (mb_comp == "") {
if (mb_comp.length < 1) {
alert("회사명을 입력하십시오");
mb_comp.focus();
return false;
}
}
// 팀명 검사
if (mb_comp_team == "") {
if (mb_comp_team.length < 1) {
alert("팀명을 입력하십시오");
mb_comp_team.focus();
return false;
}
}
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage03.php',
data : {
'mb_id' : mb_id,
'mb_password' : mb_password,
'mb_password_re' : mb_password_re,
'mb_name' : mb_name,
'mb_email1' : mb_email1,
'mb_email2' : mb_email2,
'mb_hp' : mb_hp,
'mb_comp' : mb_comp,
'mb_comp_team' : mb_comp_team,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
if(ss.replace('"','').replace('"','') == "success"){
// $(".popup_wrap").show();
$('.btn_close').show();
$('#pop_login').hide();
$('#pop_agreement').hide();
$('#pop_join').hide();
$('#pop_mypage01').hide();
$('#pop_search').hide();
$('#pop_mypage02').show();
$('#pop_mypage03').hide();
$('#pop_privacy').hide();
// $('.register_fs').hide();
// $('.join_progress .join_step').removeClass('on');
// $('.join_progress .join_step').eq(2).addClass('on');
// $('.messages').show();
alert('회원정보 수정이 완료됐습니다.');
document.getElementById("span_email").innerText=mb_email1+mb_email2;
document.getElementById("span_hp").innerText=mb_hp;
document.getElementById("span_comp").innerText=mb_comp;
document.getElementById("span_comp_team").innerText=mb_comp_team;
// $('#update_mb_id').val('');
// $('#update_mb_password').val('');
// $('#update_mb_password_re').val('');
// $('#update_mb_name').val('');
// $('#update_mb_email1').val('');
// $('#update_mb_hp').val('');
// $('#update_mb_comp').val('');
// $('#update_mb_comp_team').val('');
// $('#dupl_check_yn').val('N');
}else{
alert('실패했습니다.');
}
},
error : function(err){
alert('에러');
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
$('#fmyconfirmpw button[type=submit]').click(function(e){
e.preventDefault();
let l_mb_password = $('#password_mypage').val();
let l_mb_id = $('#hid_mb_id').val();
$.ajax({
url : '<?php echo G5_URL ?>/bbs/mypage02.php',
data : {
'mb_id' : l_mb_id,
'mb_password' : l_mb_password,
},
type : "POST",
datatype : "json",
success : function(data){
var ss='';
for(i=0; i<data.length; i++){
ss=ss + data[i];
}
//alert(ss.replace('"','').replace('"',''));
if(ss.replace('"','').replace('"','') == "success"){
$('#password_mypage').val('');
//mypage02();
document.cookie = "tmp_1=John";
location.href="<?php echo G5_URL ?>/bbs/qawrite.php";
}else
{
alert(trim(ss));
$('#password_mypage').select();
}
},
error : function(err){
alert(err);
alert(err.status);
alert(err.statusText);
}
});
});
</script>
+134
View File
@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Q&A 게시판 리스트</title>
<style>
/* 전체 컨테이너 */
.qa-container {
max-width: 1200px;
margin: 2rem auto;
font-family: sans-serif;
}
/* ① 필터 + ② 검색/문의등록 영역을 한 줄에 flex 배치 */
.qa-controls {
display: flex;
justify-content: space-between;
margin-bottom: 1rem;
}
/* 필터 박스 */
.qa-filters > div {
margin-bottom: 0.5rem;
}
/* 검색 + 버튼 세로 스택 */
.qa-search {
display: flex;
flex-direction: column;
align-items: flex-end;
}
.qa-search input {
padding: 0.3rem;
width: 200px;
margin-right: 0.3rem;
}
.qa-search button {
padding: 0.4rem 0.8rem;
margin-top: 0.5rem;
}
/* ③ 테이블 */
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 0.6rem;
border: 1px solid #ddd;
text-align: left;
}
th {
background: #f4f4f4;
}
/* 상태 표시용 간단한 스타일 */
.status-await { color: #d9534f; } /* 답변대기 */
.status-done { color: #5cb85c; } /* 답변완료 */
</style>
</head>
<body>
<div class="qa-container">
<h1>Q&A 게시판 리스트</h1>
<!-- 필터 + 검색/문의등록 -->
<div class="qa-controls">
<div class="qa-filters">
<div>
<strong>작성자</strong><br>
<label><input type="radio" name="writer" value="all" checked> 전체</label>
<label><input type="radio" name="writer" value="me"> 본인</label>
</div>
</div>
<div class="qa-filters2">
<div>
<strong>처리상태</strong><br>
<label><input type="checkbox" name="status" value="await" checked> 답변대기</label>
<label><input type="checkbox" name="status" value="done" checked> 답변완료</label>
</div>
</div>
<div class="qa-search">
<!-- 검색 -->
<div>
<input type="text" placeholder="검색어를 입력하세요">
<button>🔍 검색</button>
</div>
<!-- 문의등록 버튼 -->
<button style="background:#337ab7;color:#fff;border:none;cursor:pointer;">
문의등록
</button>
</div>
</div>
<!-- 데이터 테이블 -->
<table>
<thead>
<tr>
<th>번호</th>
<th>구분</th>
<th>회사</th>
<th>부서</th>
<th>작성자</th>
<th>제목</th>
<th>등록일</th>
<th>상태</th>
</tr>
</thead>
<tbody>
<tr>
<td>12</td>
<td>회원</td>
<td>장헌산업</td>
<td>기획실</td>
<td>송영석</td>
<td>ezbim 화면모드 최적화 문의</td>
<td>250704</td>
<td class="status-done">답변완료</td>
</tr>
<tr>
<td>11</td>
<td>회원</td>
<td>장헌산업</td>
<td>기획실</td>
<td>윤선일</td>
<td>노트북 모니터링 최적화 부탁드립니다.</td>
<td>250621</td>
<td class="status-await">답변대기</td>
</tr>
<!-- 많은 행… -->
</tbody>
</table>
</div>
</body>
</html>