본문 바로가기
PHP/게시판 만들기

글 수정하기 작성

by ethanjoh 2008. 11. 13.

글 수정하는 것은 post.php -> edit.php 로 복사해서 사용한다.
어차피 글 작성 폼과 수정 폼은 동일하고 단지 수정하기에서는 DB에서 내용을 불러와 뿌려주기만 하면 된다.
그리고 edit_ok.php에서 DB에 업데이트를 하면 된다.

업데이트를 하기 전에 패스워드가 일치하는지를 체크하는 루틴을 둔다.

<edit.php>

<?
	include "db_connect.php";

	$main_no = $_GET[main_no]; 

	

       //Restore data from DB

	$sql = "SELECT * FROM board  WHERE main_no='$main_no' ";

	$result = mysql_query($sql);

	$row = mysql_fetch_array($result);

?>
	
<html>

<head>

<meta HTTP-EQUIV="CONTENT-TYPE" content="text/html;charset=EUC-kr">

<title>글 수정하기</title>

<script language="JavaScript">

<!--

    function send()

    {

        if (document.edit_form.title.value.length <1) { 

            alert("제목을 입력하십시오.");

            document.edit_form.title.focus();

            return false;

        } else if (document.edit_form.content.value.length <1) {

                alert("본문 내용이 없습니다.");

                document.edit_form.content.focus();

                return false;

        }
	 document.edit_form.submit();
    }

-->

</script>

</head>



<body bgcolor=#ffffff>

<div align="center">

<table border="0">

<tr>

    <td><font color="red">글 수정하기</font></td>

</tr>

</table>


<form name="edit_form" action="edit_ok.php" method="post">
<input type="hidden" name="main_no" value="<? echo $row[main_no] ?>">

<table cellspacing="0" border="0">

<tr>

    <td align="left" width="70">글쓴이 </td>

    <td align="left"><input type="text" name="name" size="12" maxlength="12" value="<? echo $row[name] ?>"></td>

</tr>

<tr>

    <td align="left">패스워드</td>

    <td align="left"><input type="password" name="passwd" size="12" maxlength="12"></td>

</tr>   

<tr>

    <td align="left">이메일</td>

    <td align="left"><input type="text" name="email" size="30" maxlength="30" value="<? echo $row[email] ?>"></td>

</tr>   
<tr>

    <td align="left" valign="center">제 목 </td>

    <td align="left"><input type="text" name="title" size="50" maxlength="50" value="<? echo $row[title] ?>"></td>

</tr>

<tr>

    <td align="center" colspan="2"><textarea name="content" rows="17" cols="75"><? echo $row[content] ?></textarea><br />
	<input onclick="send()" value="수 정" type="button"><input onclick="javascript:(history.back(-1));" value="취 소" type="reset">
	<input onclick="javascript:(document.location.replace('list.php'));" value="글 목록보기" type="button">
</td>
</tr>
</form>
</div>
</body>
</html>
</textarea>

</br>
</br>
<edit_ok.php>
</br>
<br />
</br>
</br>
<textarea name="code" class="php" cols="50" rows="10">
<? 
//include common functions to connect to DB 
include 'db_connect.php'; 

$main_no = $_POST[main_no]; 
$title = $_POST[title]; 
$name = $_POST[name]; 
$content = $_POST[content]; 
$email = $_POST[email]; 
$passwd = $_POST[passwd]; 

//Check password routine 
$pw_sql = "SELECT passwd FROM board WHERE main_no='$main_no'"; 
$result = mysql_query($pw_sql); 
$row = mysql_fetch_array($result); 

if($passwd != $row[passwd] ) 
	echo "<script language=\"JavaScript\"> 
	alert(\"패스워드가 맞지 않습니다.\"); 
	history.back(-1); 
	</script>"; 
else { 
	//update table 
	$sql = "UPDATE board SET title='$title', name='$name', content='$content', date=now(), email='$email' WHERE main_no='$main_no' "; 
	mysql_query($sql) or dbError(mysql_error()); 
	echo "<script language=\"JavaScript\"> alert(\"글을 수정했습니다.\"); 	
	document.location.replace(\"list.php\"); </script>"; } 
?>

 

134라인부터가 edit_ok.php 소스입니다.
소스에 라인넘버를 붙여주는 프로그램이 textarea 영역이 있으면 오류가 있더라구요.

'PHP > 게시판 만들기' 카테고리의 다른 글

게시판 만들기 중간정리 (소스 첨부)  (0) 2008.11.14
글 삭제하기 작성  (0) 2008.11.14
글 작성하기 수정  (0) 2008.11.13
게시판 설계 변경  (6) 2008.11.13
테이블 구조 변경하기  (0) 2008.11.12