묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
기본 게시판 짜다가--;;
2003.05.29 01:17
기본 게시판 짜다가 막혀서 글을 올립니다.
글 지우기가 안되서 속이 타다가 해결을 했는데... 갑자기 잘 되었던 글 수정이 안 되네요... 정말 웹프로그래밍을 시작한지 얼마 안된 왕초보라서... 고수님들께 조언을 받고 싶습니다.
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($array[member_no]);
$title=addslashes($array[title]);
$memo=addslashes($array[memo]);
$password=addslashes($array[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>
이렇게 나오는건 왜 그런거죠?
에휴...
글 지우기가 안되서 속이 타다가 해결을 했는데... 갑자기 잘 되었던 글 수정이 안 되네요... 정말 웹프로그래밍을 시작한지 얼마 안된 왕초보라서... 고수님들께 조언을 받고 싶습니다.
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($array[member_no]);
$title=addslashes($array[title]);
$memo=addslashes($array[memo]);
$password=addslashes($array[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>
이렇게 나오는건 왜 그런거죠?
에휴...
php 설정에서 htmlspecialchars 관련 설정을 바꿔보시죠..
아니면, 저장할때 nl2br을 사용하면 안될까요..?
$memo=nl2br(addslashes($array[memo]));