··조회 24,912
저기 질문이...
1달간 피땀흘리며 손수 제작한 게시판이 드디어 완성되었습니다. -_-v
여기다가 게시판 관리 모드를 넣었는데
게시판 정보 출력까진 좋았습니다.
*아래 페이지 참고
http://stub363.cafe24.com/boardss/list.php?board=freeboard
위에서 '[관리자 모드]'눌러보세요.
그런데 입력된 수정값이 DB에 업데이트가 안되는군요.
일단 DB테이블 구조부터 적겠습니다.
게시판 코드 : freeboard
---------- 게시판 관리 테이블 ----------
테이블 이름 : bd_admin_info
***** 필드 *****
no //게시판 번호입니다. 쓰이지는 않는다만...
password //게시판 암호입니다.
name //게시판 코드부분입니다. 게시판 정보 출력을 위함입니다.
title //브라우저 상단 타이틀 부분입니다.
color[background] //배경색 부분입니다.
color[table] //표색 부분입니다.(게시판이 표로 구성됨-_-)
color[font] //폰트색 부분입니다.
head //게시판 상단 부분입니다.
foot //게시판 하단 부분입니다.
---------------------------------------
게시판 정보 출력화면과 업데이트 기능파일 소스입니다.
---------- 게시판 정보 출력 소스 ----------
파일이름 : admin_board[edit].php
<html>
<head>
<link rel=StyleSheet href=http://stub363.cafe24.com/bbs/skin/nzeo_ver3/style.css type=text/css title=style>
<form action=admin_board[edit_ok].php method=get>
<input type=hidden name=board value=<?=$board?>>
<input type=hidden name=password value=<?=$password?>>
<input type=hidden name=password_edit value=<?=$password_edit?>>
<input type=hidden name=title value=<?=$title?>>
<input type=hidden name=color_background value=<?=$color_background?>>
<input type=hidden name=color_table value=<?=$color_table?>>
<input type=hidden name=color_font value=<?=$color_font?>>
<input type=hidden name=head value=<?=$head?>>
<input type=hidden name=foot value=<?=$foot?>>
<input type=hidden name=edit[b] value="ok">
<?
include "./dbconnect.php"; //DB환경파일 인클루드
//게시판 정보를 빼내오는 부분입니다. $board은 게시판 코드입니다.
$b_info = mysql_query("select * from bd_admin_info where name='$board'");
$info = mysql_fetch_array($b_info);
$title = $info["title"];
$color[background] = $info["color[background]"];
$color[table] = $info["color[table]"];
$color[font] = $info["color[font]"];
$head = $info["head"];
$foot = $info["foot"];
?>
<title><?=$title?></title>
</head>
<body>
<br><br>
<table align="center" border="1" cellspacing="0" width="688" bordercolordark="white" bordercolorlight="black">
<tr>
<td width="682" colspan="2">
<p align="center">게시판 코드 : <a target=_blank href='list.php?board=<?=$board?>'><?=$board?></a></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>관리자 비밀번호</b></p>
</td>
<td width="538">
<p><input type="password" name="password"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>비밀번호 변경</b></p>
</td>
<td width="538">
<p><input type="password" name="password_edit"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 타이틀</b></p>
</td>
<td width="538">
<p><input type="text" name="title" value="<?=$title?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>배경 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_background" value="<?=$color[background]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>테이블 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_table" value="<?=$color[table]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>텍스트 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_font" value="<?=$color[font]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 윗부분</b></p>
</td>
<td width="538">
<p><textarea rows="13" name="head" cols="73"><?=$head?></textarea></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 아래부분</b></p>
</td>
<td width="538">
<p><textarea rows="13" name="foot" cols="73"><?=$foot?></textarea></p>
</td>
</tr>
<tr>
<td width="682" colspan="2">
<p align="right"><input type=submit value=정보 수정></p>
</td>
</tr>
</table>
</body>
</html>
------------------------------------
---------- 게시판 정보 업데이트 파일 ----------
파일이름 : admin_board[edit_ok].php
<?
//DB환경파일 인클루드
include "./dbconnect.php";
//입력하지 않았을 경우
if(!$password) echo "<script> window.alert('비밀번호를 입력하십시오.'); history.go(-1) </script>";
if(!$password_edit) echo "<script> window.alert('변경할 비밀번호를 입력하십시오.(변경하지 않을경우 기존 비밀번호 입력)'); history.go(-1) </script>";
if(!$title) echo "<script> window.alert('게시판 타이틀을 입력하십시오.'); history.go(-1) </script>";
if($edit[b]=="ok") {
//비밀번호가 일치하지 않을경우
$check_password = mysql_num_rows(mysql_query("select * from bd_admin_info where password='$password'"));
if(!$check_password) {
echo "<script> window.alert('비밀번호가 일치하지 않습니다.'); history.go(-1) </script>";
exit;
}
//admin_board[edit].php에서 입력한 값들 DB에 업데이트
$edit[b] = mysql_query("update bd_admin_info set no='1', password='$password_edit', name='$board', title='$title', color[background]='$color_background', color[table]='$color_table', color[font]='$color_font', head='$head', foot='$foot' where name='$board'");
if($edit[b]) {
echo "<script> window.alert('게시판이 성공적으로 수정되었습니다.');</script>";
echo "<meta http-equiv='refresh' content='3;URL=list.php?board=$board'>";
}else {
echo "<script> window.alert('게시판 수정에 실패했습니다.'); history.go(-1) </script>";
exit;
}
exit;
}
?>
=_=;;;
꼭 답변 부탁드립니다. ( __)
여기다가 게시판 관리 모드를 넣었는데
게시판 정보 출력까진 좋았습니다.
*아래 페이지 참고
http://stub363.cafe24.com/boardss/list.php?board=freeboard
위에서 '[관리자 모드]'눌러보세요.
그런데 입력된 수정값이 DB에 업데이트가 안되는군요.
일단 DB테이블 구조부터 적겠습니다.
게시판 코드 : freeboard
---------- 게시판 관리 테이블 ----------
테이블 이름 : bd_admin_info
***** 필드 *****
no //게시판 번호입니다. 쓰이지는 않는다만...
password //게시판 암호입니다.
name //게시판 코드부분입니다. 게시판 정보 출력을 위함입니다.
title //브라우저 상단 타이틀 부분입니다.
color[background] //배경색 부분입니다.
color[table] //표색 부분입니다.(게시판이 표로 구성됨-_-)
color[font] //폰트색 부분입니다.
head //게시판 상단 부분입니다.
foot //게시판 하단 부분입니다.
---------------------------------------
게시판 정보 출력화면과 업데이트 기능파일 소스입니다.
---------- 게시판 정보 출력 소스 ----------
파일이름 : admin_board[edit].php
<html>
<head>
<link rel=StyleSheet href=http://stub363.cafe24.com/bbs/skin/nzeo_ver3/style.css type=text/css title=style>
<form action=admin_board[edit_ok].php method=get>
<input type=hidden name=board value=<?=$board?>>
<input type=hidden name=password value=<?=$password?>>
<input type=hidden name=password_edit value=<?=$password_edit?>>
<input type=hidden name=title value=<?=$title?>>
<input type=hidden name=color_background value=<?=$color_background?>>
<input type=hidden name=color_table value=<?=$color_table?>>
<input type=hidden name=color_font value=<?=$color_font?>>
<input type=hidden name=head value=<?=$head?>>
<input type=hidden name=foot value=<?=$foot?>>
<input type=hidden name=edit[b] value="ok">
<?
include "./dbconnect.php"; //DB환경파일 인클루드
//게시판 정보를 빼내오는 부분입니다. $board은 게시판 코드입니다.
$b_info = mysql_query("select * from bd_admin_info where name='$board'");
$info = mysql_fetch_array($b_info);
$title = $info["title"];
$color[background] = $info["color[background]"];
$color[table] = $info["color[table]"];
$color[font] = $info["color[font]"];
$head = $info["head"];
$foot = $info["foot"];
?>
<title><?=$title?></title>
</head>
<body>
<br><br>
<table align="center" border="1" cellspacing="0" width="688" bordercolordark="white" bordercolorlight="black">
<tr>
<td width="682" colspan="2">
<p align="center">게시판 코드 : <a target=_blank href='list.php?board=<?=$board?>'><?=$board?></a></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>관리자 비밀번호</b></p>
</td>
<td width="538">
<p><input type="password" name="password"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>비밀번호 변경</b></p>
</td>
<td width="538">
<p><input type="password" name="password_edit"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 타이틀</b></p>
</td>
<td width="538">
<p><input type="text" name="title" value="<?=$title?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>배경 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_background" value="<?=$color[background]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>테이블 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_table" value="<?=$color[table]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>텍스트 색상</b></p>
</td>
<td width="538">
<p><input type="text" name="color_font" value="<?=$color[font]?>"></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 윗부분</b></p>
</td>
<td width="538">
<p><textarea rows="13" name="head" cols="73"><?=$head?></textarea></p>
</td>
</tr>
<tr>
<td width="140">
<p align="center"><b>게시판 아래부분</b></p>
</td>
<td width="538">
<p><textarea rows="13" name="foot" cols="73"><?=$foot?></textarea></p>
</td>
</tr>
<tr>
<td width="682" colspan="2">
<p align="right"><input type=submit value=정보 수정></p>
</td>
</tr>
</table>
</body>
</html>
------------------------------------
---------- 게시판 정보 업데이트 파일 ----------
파일이름 : admin_board[edit_ok].php
<?
//DB환경파일 인클루드
include "./dbconnect.php";
//입력하지 않았을 경우
if(!$password) echo "<script> window.alert('비밀번호를 입력하십시오.'); history.go(-1) </script>";
if(!$password_edit) echo "<script> window.alert('변경할 비밀번호를 입력하십시오.(변경하지 않을경우 기존 비밀번호 입력)'); history.go(-1) </script>";
if(!$title) echo "<script> window.alert('게시판 타이틀을 입력하십시오.'); history.go(-1) </script>";
if($edit[b]=="ok") {
//비밀번호가 일치하지 않을경우
$check_password = mysql_num_rows(mysql_query("select * from bd_admin_info where password='$password'"));
if(!$check_password) {
echo "<script> window.alert('비밀번호가 일치하지 않습니다.'); history.go(-1) </script>";
exit;
}
//admin_board[edit].php에서 입력한 값들 DB에 업데이트
$edit[b] = mysql_query("update bd_admin_info set no='1', password='$password_edit', name='$board', title='$title', color[background]='$color_background', color[table]='$color_table', color[font]='$color_font', head='$head', foot='$foot' where name='$board'");
if($edit[b]) {
echo "<script> window.alert('게시판이 성공적으로 수정되었습니다.');</script>";
echo "<meta http-equiv='refresh' content='3;URL=list.php?board=$board'>";
}else {
echo "<script> window.alert('게시판 수정에 실패했습니다.'); history.go(-1) </script>";
exit;
}
exit;
}
?>
=_=;;;
꼭 답변 부탁드립니다. ( __)
댓글 2
답변이 늦었네요.. 그런데 자세하게 볼 겨를이 없어, 눈에 띄는 것만 우선 말씀드리겠습니다.
먼저 페이지 간 정보 전달 방식을 get 방식으로 전달하고 있네요.
이건 기능이 구현되고 말고를 떠나서 잘못된 전송방식입니다. get 를 post로 바꾸시기 바랍니다.
get는 255자까지만 전송가능하며, 패스워드가 주소 표시줄에 그대로 노출됩니다. 전달하는 양이 적고 노출되어도 지장이 없는 곳에서만 사용하시기 바랍니다.
그리고 제가 테스트해보니 어느 지점에서 오류가 발생했는지가 나타나지 않습니다.
소스 중간 중간에 echo 문을 이용해서 어느 지점에서 오류가 발생하는지를 점검해서 집중적으로 파악하시기 바랍니다.
예를 들어 echo "여기까지는 정상"; 이라든가, SQL 쿼리가 실행되기 전에 echo "$title"; echo "$head";와 같은식으로 그 값이 정상적으로 입력되었는지를 확인하시기 바랍니다.
최대한 노력을 해보아야겠군요...ㅠ_ㅠ