초기 커밋: 5130 레거시 시스템

- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경
- DB 연결 하드코딩 → .env 기반으로 변경
- MySQL strict mode DATE 오류 수정
This commit is contained in:
2025-12-10 20:14:31 +09:00
commit aca1767eb9
6728 changed files with 1863265 additions and 0 deletions

78
greet/Insert.php Normal file
View File

@@ -0,0 +1,78 @@
<?php session_start(); ?>
<meta charset="utf-8">
<?php
if(!isset($_SESSION["userid"])) {
?>
<script>
alert('로그인 후 이용해 주세요.');
history.back();
</script>
<?php
}
if(isset($_REQUEST["mode"])) //modify_form에서 호출할 경우
$mode=$_REQUEST["mode"];
else
$mode="";
if(isset($_REQUEST["num"]))
$num=$_REQUEST["num"];
else
$num="";
if(isset($_REQUEST["html_ok"])) //checkbox는 체크해야 변수명 전달됨.
$html_ok=$_REQUEST["html_ok"];
else
$html_ok="";
$subject=$_REQUEST["subject"];
$content=$_REQUEST["content"];
require_once("../lib/MYDB.php");
$pdo = db_connect();
if ($mode=="modify"){
try{
$pdo->beginTransaction();
$sql = "update phptest1.greet set subject=?, content=?, is_html=? where num=?";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1, $subject, PDO::PARAM_STR);
$stmh->bindValue(2, $content, PDO::PARAM_STR);
$stmh->bindValue(3, $html_ok, PDO::PARAM_STR);
$stmh->bindValue(4, $num, PDO::PARAM_STR);
$stmh->execute();
$pdo->commit();
header("Location:http://localhost/greet/list.php");
} catch (PDOException $Exception) {
$pdo->rollBack();
print "오류: ".$Exception->getMessage();
}
} else {
if ($html_ok =="y"){
$is_html = "y";
}else {
$is_html = "";
$content = htmlspecialchars($content);
}
try{
$pdo->beginTransaction();
$sql = "insert into phptest1.greet(id,name,nick,subject,content,regist_day,hit,is_html) ";
$sql .= "values(?, ?, ?, ?, ?, now(), 0, ?)";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1, $_SESSION["userid"], PDO::PARAM_STR);
$stmh->bindValue(2, $_SESSION["name"], PDO::PARAM_STR);
$stmh->bindValue(3, $_SESSION["nick"], PDO::PARAM_STR);
$stmh->bindValue(4, $subject, PDO::PARAM_STR);
$stmh->bindValue(5, $content, PDO::PARAM_STR);
$stmh->bindValue(6, $is_html, PDO::PARAM_STR);
$stmh->execute();
$pdo->commit();
header("Location:http://localhost/greet/list.php");
} catch (PDOException $Exception) {
$pdo->rollBack();
print "오류: ".$Exception->getMessage();
}
}
?>

20
greet/delete.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
$num=$_REQUEST["num"];
require_once("../lib/MYDB.php");
$pdo = db_connect();
try{
$pdo->beginTransaction();
$sql = "delete from phptest1.greet where num = ?";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1,$num,PDO::PARAM_STR);
$stmh->execute();
$pdo->commit();
header("Location:http://localhost/greet/list.php");
} catch (Exception $ex) {
$pdo->rollBack();
print "오류: ".$Exception->getMessage();
}
?>

134
greet/list.php Normal file
View File

@@ -0,0 +1,134 @@
<?php
session_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../css/common.css">
<link rel="stylesheet" type="text/css" href="../css/greet.css">
</head>
<?php
require_once("../lib/MYDB.php");
$pdo = db_connect();
if(isset($_REQUEST["mode"]))
$mode=$_REQUEST["mode"];
else
$mode="";
if(isset($_REQUEST["search"])) // search 쿼리스트링 값 할당 체크
$search=$_REQUEST["search"];
else
$search="";
if(isset($_REQUEST["find"])) //목록표에 제목,이름 등 나오는 부분
$find=$_REQUEST["find"];
else
$find="";
if($mode=="search"){
if(!$search){
?>
<script>
alert('검색할 단어를 입력해 주세요!');
history.back();
</script>
<?php
}
$sql="select * from phptest1.greet where $find like '%$search%' order by num desc";
} else {
$sql="select * from phptest1.greet order by num desc";
}
try{
$stmh = $pdo->query($sql);
$count=$stmh->rowCount();
?>
<body>
<div id="wrap">
<div id="header">
<?php include "../lib/top_login2.php"; ?>
</div>
<div id="menu">
<?php include "../lib/top_menu2.php"; ?>
</div>
<div id="content">
<div id="col1">
<div id="left_menu">
<?php include "../lib/left_menu.php"; ?>
</div>
</div> <!-- end of col1 -->
<div id="col2">
<div id="title"><img src="../img/title_greet.gif"></div>
<form name="board_form" method="post" action="list.php?mode=search">
<div id="list_search">
<div id="list_search1">▷ 총 <?= $count ?> 개의 게시물이 있습니다.</div>
<div id="list_search2"><img src="../img/select_search.gif"></div>
<div id="list_search3">
<select name="find">
<option value='subject'>제목</option>
<option value='content'>내용</option>
<option value='nick'>닉네임</option>
<option value='name'>이름</option>
</select></div> <!-- end of list_search3 -->
<div id="list_search4"><input type="text" name="search"></div>
<div id="list_search5"><input type="image" src="../img/list_search_button.gif"></div>
</div> <!-- end of list_search -->
</form>
<div class="clear"></div>
<div id="list_top_title">
<ul>
<li id="list_title1"><img src="../img/list_title1.gif"></li>
<li id="list_title2"><img src="../img/list_title2.gif"></li>
<li id="list_title3"><img src="../img/list_title3.gif"></li>
<li id="list_title4"><img src="../img/list_title4.gif"></li>
<li id="list_title5"><img src="../img/list_title5.gif"></li>
</ul>
</div> <!-- end of list_top_title -->
<div id="list_content">
<?php // 글 목록 출력
while($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
$item_num=$row["num"];
$item_id=$row["id"];
$item_name=$row["name"];
$item_nick=$row["nick"];
$item_hit=$row["hit"];
$item_date=$row["regist_day"];
$item_date=substr($item_date, 0, 10);
$item_subject=str_replace(" ", "&nbsp;", $row["subject"]);
?>
<div id="list_item">
<div id="list_item1"><?= $item_num ?></div>
<div id="list_item2"><a href="view.php?num=<?=$item_num?>"><?= $item_subject ?></a></div>
<div id="list_item3"><?= $item_nick ?></div>
<div id="list_item4"><?= $item_date ?></div>
<div id="list_item5"><?= $item_hit ?></div>
</div> <! end of list_item -->
<?php
}
} catch (PDOException $Exception) {
print "오류: ".$Exception->getMessage();
}
?>
<div id="write_button">
<a href="list.php"><img src="../img/list.png"></a>&nbsp;
<?php
if(isset($_SESSION["userid"]))
{
?>
<a href="write_form.php"><img src="../img/write.png"></a>
<?php
}
?>
</div>
</div>
</div> <!-- end of col2 -->
</div> <!-- end of content -->
</div> <!-- end of wrap -->
</body>
</html>

82
greet/modify_form.php Normal file
View File

@@ -0,0 +1,82 @@
<?php
session_start();
$num = $_REQUEST["num"];
require_once("../lib/MYDB.php");
$pdo = db_connect();
try{
$sql = "select * from phptest1.greet where num = ? ";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1,$num,PDO::PARAM_STR);
$stmh->execute();
$count = $stmh->rowCount();
if($count<1){
print "검색결과가 없습니다.<br>";
}else{
while($row = $stmh->fetch(PDO::FETCH_ASSOC)){
$item_subject = $row["subject"];
$item_content = $row["content"];
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../css/common.css">
<link rel="stylesheet" type="text/css" href="../css/greet.css">
</head>
<body>
<div id="wrap">
<div id="header"><?php include "../lib/top_login2.php"; ?> </div>
<div id="menu"><?php include "../lib/top_menu2.php"; ?></div>
<div id="content">
<div id="col1">
<div id="left_menu"><?php include "../lib/left_menu.php";?></div>
</div>
<div id="col2">
<div id="title"><img src="../img/title_greet.gif"></div>
<div class="clear"></div>
<div id="write_form_title"><img src="../img/write_form_title.gif"></div>
<div class="clear"></div>
<form name="board_form" method="post" action="insert.php?mode=modify&num=<?=$num?>">
<div id="write_form">
<div class="write_line"></div>
<div id="write_row1">
<div class="col1"> 닉네임 </div>
<div class="col2"><?=$_SESSION["nick"]?></div>
<div class="col3">
<input type="checkbox" name="html_ok" value="y"> HTML 쓰기</div>
</div>
<div class="write_line"></div>
<div id="write_row2">
<div class="col1"> 제목 </div>
<div class="col2"><input type="text" name="subject" value="<?=$item_subject?>" required></div>
</div>
<div class="write_line"></div>
<div id="write_row3">
<div class="col1"> 내용 </div>
<div class="col2"><textarea rows="15" cols="79" name="content" required><?=$item_content?></textarea></div>
</div>
<div class="write_line"></div>
</div>
<div id="write_button"><input type="image" src="../img/ok.png">&nbsp;
<a href="list.php?page=<?=$page?>"><img src="../img/list.png"></a>
</div>
</form>
</div>
</div>
</div>
<?php
}
}
} catch (PDOException $Exception) {
print "오류: ".$Exception->getMessage();
}
?>
</body>
</html>

101
greet/view.php Normal file
View File

@@ -0,0 +1,101 @@
<?php
session_start();
$num=$_REQUEST["num"];
require_once("../lib/MYDB.php");
$pdo = db_connect();
try{
$sql = "select * from phptest1.greet where num=?";
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1, $num, PDO::PARAM_STR);
$stmh->execute();
while($row = $stmh->fetch(PDO::FETCH_ASSOC)){
$item_num = $row["num"];
$item_id = $row["id"];
$item_name = $row["name"];
$item_nick = $row["nick"];
$item_subject = str_replace(" ", "&nbsp;", $row["subject"]);
$item_content = $row["content"];
$item_date = $row["regist_day"];
$item_date = substr($item_date, 0, 10);
$item_hit = $row["hit"];
$is_html = $row["is_html"];
if ($is_html!="y"){
$item_content = str_replace(" ", "&nbsp;", $item_content);
$item_content = str_replace("\n", "<br>", $item_content);
}
$new_hit = $item_hit + 1;
try{
$pdo->beginTransaction();
$sql = "update phptest1.greet set hit=? where num=?"; // 글 조회수 증가
$stmh = $pdo->prepare($sql);
$stmh->bindValue(1, $new_hit, PDO::PARAM_STR);
$stmh->bindValue(2, $num, PDO::PARAM_STR);
$stmh->execute();
$pdo->commit();
} catch (PDOException $Exception) {
$pdo->rollBack();
print "오류: ".$Exception->getMessage();
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../css/common.css">
<link rel="stylesheet" type="text/css" href="../css/greet.css">
<script>
function del(href)
{
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
document.location.href = href;
}
}
</script>
</head>
<body>
<div id="wrap">
<div id="header"><?php include "../lib/top_login2.php"; ?></div>
<div id="menu"><?php include "../lib/top_menu2.php"; ?></div>
<div id="content">
<div id="col1">
<div id="left_menu"><?php include "../lib/left_menu.php"; ?></div>
</div>
<div id="col2">
<div id="title"><img src="../img/title_greet.gif"></div>
<div id="view_comment"> &nbsp;</div>
<div id="view_title">
<div id="view_title1"><?= $item_subject ?></div>
<div id="view_title2"><?= $item_nick ?> | 조회 : <?= $item_hit ?> | <?= $item_date ?> </div>
</div>
<div id="view_content"><?= $item_content ?></div>
<div id="view_button">
<a href="list.php"><img src="../img/list.png"></a>&nbsp;
<?php
if(isset($_SESSION["userid"])) {
if($_SESSION["userid"]==$item_id || $_SESSION["userid"]=="admin"){
?>
<a href="modify_form.php?num=<?=$num?>"><img src="../img/modify.png"></a>&nbsp;
<a href="javascript:del('delete.php?num=<?=$num?>')"><img src="../img/delete.png"></a>&nbsp;
<?php }
?>
<a href="write_form.php"><img src="../img/write.png"></a>
<?php
}
}
} catch (PDOException $Exception) {
print "오류: ".$Exception->getMessage();
}
?>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</body>
</html>

68
greet/write_form.php Normal file
View File

@@ -0,0 +1,68 @@
<?php
session_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../css/common.css">
<link rel="stylesheet" type="text/css" href="../css/greet.css">
</head>
<body>
<div id="wrap">
<div id="header">
<?php include "../lib/top_login2.php"; ?>
</div>
<div id="menu">
<?php include "../lib/top_menu2.php"; ?>
</div>
<div id="content">
<div id="col1">
<div id="left_menu">
<?php include "../lib/left_menu.php";?>
</div>
</div>
<div id="col2">
<div id="title">
<img src="../img/title_greet.gif">
</div>
<div class="clear"></div>
<div id="write_form_title">
<img src="../img/write_form_title.gif">
</div>
<div class="clear"></div>
<form name="board_form" method="post" action="insert.php">
<div id="write_form">
<div class="write_line"></div>
<div id="write_row1">
<div class="col1"> 닉네임 </div>
<div class="col2"><?=$_SESSION["nick"]?></div>
<div class="col3"><input type="checkbox" name="html_ok" value="y"> HTML 쓰기</div>
</div>
<div class="write_line"></div>
<div id="write_row2"><div class="col1"> 제목 </div>
<div class="col2"><input type="text" name="subject" required></div>
</div>
<div class="write_line"></div>
<div id="write_row3"><div class="col1"> 내용 </div>
<div class="col2"><textarea rows="15" cols="79" name="content" required></textarea></div>
</div>
<div class="write_line"></div>
</div>
<div id="write_button"><input type="image" src="../img/ok.png">&nbsp;
<a href="list.php"><img src="../img/list.png"></a>
</div>
</form>
</div>
</div>
</div> <!-- end of wrap -->
</body>
</html>