··조회 21,612
질문 두가지만 할께요.
우선 질문 한가지는...
sujeng.php
<?
include("./conn.php");
$tablename="cmm_board_free";
//글 불러오기
$query="select * from $tablename where NO='$NO'";
$result=mysql_query($query,$conn) or die (mysql_error());
$array=mysql_fetch_array($result);
//백슬레쉬 제거, 특수문자 변환(html용),개행(<br>) 처리 등
//$array[name]=stripslashes($array[name]);
$array[title]=stripslashes($array[title]);
$array[memo]=stripslashes($array[memo]);
$array[subject]=htmlspecialchars($array[name]);
$array[memo]=htmlspecialchars($array[memo]);
$array[memo]=nl2br($array[memo]);
?>
<html><title>C.M.M</title>
<script language="javascript">
function check_ok()
{
if(!check.title.value)
{ alert("글 제목을 입력해주세요");
check.title.focus();
return false; }
if(!check.memo.value)
{ alert("글 내용을 입력해주세요");
check.memo.focus();
return false; }
if(!check.password.value)
{ alert("비밀번호를 입력해주세요.");
check.password.focus();
return false; }
}
</script>
</head>
<form name="check" action="sujeng_ok.php" method="post" onsubmit="return check_ok();">
<input type=hidden name="page" value="<? echo $page ?>">
<input type="hidden" name=NO value='<? echo $NO ?>'>
<table width="340" border="1" cellspacing="0" cellpadding="0" bgcolor=#FFEFFF bordercolorlight=white bordercolordark=#E70029 align=center>
<tr>
<td width="100">회원ID</td>
<td width="100"><input type="text" name=id size="10" maxlength="10" value='<?echo $array[member_no] ?>'></td>
</tr>
<tr >
<td width="100" >제목</td>
<td width="200"><input type="text" name=title size="35" maxlength="50" value='<? echo $array[title] ?>'></td>
</tr>
<tr>
<td width="50">내용</td>
<td width="250"><textarea type="text" name=memo rows="10" cols="35"><? echo $array[memo] ;?> </textarea></td>
<!--textarea에서는 value값을 사용하면 안된다--!>
</tr>
<tr>
<td width="90">비밀번호</td>
<td width="250"><input type="password" name=password size="10" maxlength="10"></td>
</tr>
</table>
<table align=center>
<tr>
<td><input type="submit" value="수정" class="check"></td>
<td><a href= "list.php?page=<? $page ?>"><input type="submit" value="목록"></a>
</tr>
</table>
</form>
sujeng_ok.php
<?
include ("./conn.php");
$tablename="cmm_board_free";
$id=addslashes($member_no);
$title=addslashes($title);
$memo=nl2br(addslashes($memo));
$password=addslashes($password);
$date=time();
//비밀번호가 맞는지 확인
$sql="select NO from $tablename where NO=$NO and password=$password";
$result=mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($result))
{
$sql="update $tablename set title='$title',memo='$memo',password='$password' where NO=$NO";
mysql_query($sql) or die(mysql_error());
$msg = "수정을 하였습니다.";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
</script>
</head>
<meta http-equiv='Refresh' content='0; URL=list.php'>
</html> ";
} else {
$msg = "비밀번호가 틀립니다.";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
history.go(-1);
</script>
</head>
</html> ";
}
?>
소스는 이것입니다. 그런데... 문제는... 수정해서 글을 저장하면--;;
난나고 넌 너다. <br />
<br />
그렇지 않니??<br />
<br />
아흠...
이렇게 됩니다... 글 입력 했을 때에는 잘 입력 되는데 글 수정하면 하면 이렇게 되어 버리네요--;;
이게 첫번째 질문이고.. 2번째 질문은...
코멘트라고 하죠... 제가 아래 질문 올린 걸 손병목님께서 답변 해주셨던 그런 법.... 제가 코멘트를 달려고 게시판 db에 코멘트라는 걸 따로 만들었거든요... 뭐 대충 막연하게 만든거지만(--;;)
그래서 따로 코멘트 db를 만들었는데... 연동 하는 법을 모르겠네요--;;;;
만약에 1번글 밑에 코멘트가 달리면.... 코멘트 db에는 저장이 되겠지요... 근데 그걸 1번글과 연관시키는 법을 모르겠네요....
코멘트 db에 따로 게시판 번호(NO)값을 박아 넣는걸 만들어야 할까요? 대충 생각은 나지만... 실행에 옮기기에는 어렵네요
ㅎㅎㅎ
---
근데 조회수 조작 방지 하는 법... 어떤 방법을 이용하면 좋을까요? 제로보드 같은 경우 한번 읽고 f5 무한 난타(?) 해도 조회수는 딱 1만 올라가잖아요. ip때문인 듯(?)... 저도 그런걸 구현 하고 싶은데... 어렵네요@_@;;
제가 만든 초 허접 게시판인데... 오셔서 보시고 고쳐야 할 부분 좀 지적해주세요....
http://www.cmmania.net/cmm/board/list.php
언제나 허접초보의 질문에 답변 해주셔서 감사합니다.
sujeng.php
<?
include("./conn.php");
$tablename="cmm_board_free";
//글 불러오기
$query="select * from $tablename where NO='$NO'";
$result=mysql_query($query,$conn) or die (mysql_error());
$array=mysql_fetch_array($result);
//백슬레쉬 제거, 특수문자 변환(html용),개행(<br>) 처리 등
//$array[name]=stripslashes($array[name]);
$array[title]=stripslashes($array[title]);
$array[memo]=stripslashes($array[memo]);
$array[subject]=htmlspecialchars($array[name]);
$array[memo]=htmlspecialchars($array[memo]);
$array[memo]=nl2br($array[memo]);
?>
<html><title>C.M.M</title>
<script language="javascript">
function check_ok()
{
if(!check.title.value)
{ alert("글 제목을 입력해주세요");
check.title.focus();
return false; }
if(!check.memo.value)
{ alert("글 내용을 입력해주세요");
check.memo.focus();
return false; }
if(!check.password.value)
{ alert("비밀번호를 입력해주세요.");
check.password.focus();
return false; }
}
</script>
</head>
<form name="check" action="sujeng_ok.php" method="post" onsubmit="return check_ok();">
<input type=hidden name="page" value="<? echo $page ?>">
<input type="hidden" name=NO value='<? echo $NO ?>'>
<table width="340" border="1" cellspacing="0" cellpadding="0" bgcolor=#FFEFFF bordercolorlight=white bordercolordark=#E70029 align=center>
<tr>
<td width="100">회원ID</td>
<td width="100"><input type="text" name=id size="10" maxlength="10" value='<?echo $array[member_no] ?>'></td>
</tr>
<tr >
<td width="100" >제목</td>
<td width="200"><input type="text" name=title size="35" maxlength="50" value='<? echo $array[title] ?>'></td>
</tr>
<tr>
<td width="50">내용</td>
<td width="250"><textarea type="text" name=memo rows="10" cols="35"><? echo $array[memo] ;?> </textarea></td>
<!--textarea에서는 value값을 사용하면 안된다--!>
</tr>
<tr>
<td width="90">비밀번호</td>
<td width="250"><input type="password" name=password size="10" maxlength="10"></td>
</tr>
</table>
<table align=center>
<tr>
<td><input type="submit" value="수정" class="check"></td>
<td><a href= "list.php?page=<? $page ?>"><input type="submit" value="목록"></a>
</tr>
</table>
</form>
sujeng_ok.php
<?
include ("./conn.php");
$tablename="cmm_board_free";
$id=addslashes($member_no);
$title=addslashes($title);
$memo=nl2br(addslashes($memo));
$password=addslashes($password);
$date=time();
//비밀번호가 맞는지 확인
$sql="select NO from $tablename where NO=$NO and password=$password";
$result=mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($result))
{
$sql="update $tablename set title='$title',memo='$memo',password='$password' where NO=$NO";
mysql_query($sql) or die(mysql_error());
$msg = "수정을 하였습니다.";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
</script>
</head>
<meta http-equiv='Refresh' content='0; URL=list.php'>
</html> ";
} else {
$msg = "비밀번호가 틀립니다.";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
history.go(-1);
</script>
</head>
</html> ";
}
?>
소스는 이것입니다. 그런데... 문제는... 수정해서 글을 저장하면--;;
난나고 넌 너다. <br />
<br />
그렇지 않니??<br />
<br />
아흠...
이렇게 됩니다... 글 입력 했을 때에는 잘 입력 되는데 글 수정하면 하면 이렇게 되어 버리네요--;;
이게 첫번째 질문이고.. 2번째 질문은...
코멘트라고 하죠... 제가 아래 질문 올린 걸 손병목님께서 답변 해주셨던 그런 법.... 제가 코멘트를 달려고 게시판 db에 코멘트라는 걸 따로 만들었거든요... 뭐 대충 막연하게 만든거지만(--;;)
그래서 따로 코멘트 db를 만들었는데... 연동 하는 법을 모르겠네요--;;;;
만약에 1번글 밑에 코멘트가 달리면.... 코멘트 db에는 저장이 되겠지요... 근데 그걸 1번글과 연관시키는 법을 모르겠네요....
코멘트 db에 따로 게시판 번호(NO)값을 박아 넣는걸 만들어야 할까요? 대충 생각은 나지만... 실행에 옮기기에는 어렵네요
ㅎㅎㅎ
---
근데 조회수 조작 방지 하는 법... 어떤 방법을 이용하면 좋을까요? 제로보드 같은 경우 한번 읽고 f5 무한 난타(?) 해도 조회수는 딱 1만 올라가잖아요. ip때문인 듯(?)... 저도 그런걸 구현 하고 싶은데... 어렵네요@_@;;
제가 만든 초 허접 게시판인데... 오셔서 보시고 고쳐야 할 부분 좀 지적해주세요....
http://www.cmmania.net/cmm/board/list.php
언제나 허접초보의 질문에 답변 해주셔서 감사합니다.
댓글 1
먼저 수정 화면에서 / br 문자가 보이는 것을 없애려면,
소스 중에서
$array[memo]=nl2br($array[memo]);
이 부분을 삭제하면 됩니다.
이건 view.php에서는 사용하되 수정 모드에서는 사용할 필요가 없습니다. 사용자가 엔터를 친 곳을 br 태그로 보여주는 건데, 수정할 때는 그렇게 할 필요가 없습니다.
그리고 코멘트 기능은, 짧게 설명드릴 수 있는 성질의 것이 아니네요.
개략적인 원리는 어느정도 아실 겁니다. 기본 테이블의 레코드 번호를 코멘트 테이블과 연결시키는 것이 기본이지요. 나중에 시간되면 제로보드에서는 어떻게 구현하고 있는지 설명드리겠습니다.
그리고 조회수 조작 방지 방법은, 주로 쿠키를 사용하고 있습니다. 사용자가 접속했을 때 특정 쿠키를 만들어두었다가 브라우저를 닫으면 쿠키를 지우는 방법을 주로 씁니다. (아니면 쿠키의 유효 기간을 몇 시간 또는 하루 정도로 늘여도 되구요..)
조회수를 조작 방지를 하더라도 대개의 경우 브라우저를 닫고 다시 조회하면 조회수가 늘어나는 것도 이 때문입니다.
수고하시구요... 답변 모두 드리지 못해 죄송합니다~