본문으로 바로가기

2019.05.12 수정


이전 게시판을 익명 게시판에서 회원제 게시판으로 바꿔 봤습니다. 이제부터 글은 로그인 한 상태에서 가능합니다. 


또 게시물 수정 기능을 추가했습니다. 추후 추가할 기능은 삭제, 댓글 기능들 입니다. 

( 2019.03 현재 코드를 실행했던 서버가 닫혀서 추후 기능은 언제 추가할지 모르겠습니다. )



우선 write.php 부분을 약간 변경했습니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        <?php
                session_start();
                $URL = "./index.php";
                if(!isset($_SESSION['userid'])) {
        ?>
 
                <script>
                        alert("로그인이 필요합니다");
                        location.replace("<?php echo $URL?>");
                </script>
        <?php
                }
        ?>
 
        <form method = "get" action = "write_action.php">
        <table  style="padding-top:50px" align = center width=700 border=0 cellpadding=2 >
                <tr>
                <td height=20 aligncenter bgcolor=#ccc><font color=white> 글쓰기</font></td>
                </tr>
                <tr>
                <td bgcolor=white>
                <table class = "table2">
                        <tr>
                        <td>작성자</td>
                        <td><input type="hidden" name="name" value="<?=$_SESSION['userid']?>"><?=$_SESSION['userid']?></td>
                        </tr>
 
                        <tr>
                        <td>제목</td>
                        <td><input type = text name = title size=60></td>
                        </tr>
 
                        <tr>
                        <td>내용</td>
                        <td><textarea name = content cols=85 rows=15></textarea></td>
                        </tr>
 
                        </table>
                          <center>
                        <input type = "submit" value="작성">
                        </center>
                </td>
                </tr>
        </table>
        </form>
 
cs


이전에는 세션 검사가 없었지만 회원제 게시판으로 만들면서 세션이 있어야만 글 작성이 가능하도록 만들었습니다. 세션이 없다면, 메인 화면으로 돌아갑니다. 



세션 없이 로그인 했을 때 화면입니다. 



로그인을 한 후 결과 화면입니다. 




수정하기 >>>>>>


글 수정 코드 입니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
       <?php    $connect = mysqli_connect("localhost", , , ) or die("connect fail");
                $id = $_GET[id];
                $number = $_GET[number];
                $query = "select title, content, date, id from board where number=$number";
                $result = $connect->query($query);
                $rows = mysqli_fetch_assoc($result);
 
                $title = $rows['title'];
                $content = $rows['content'];
                $usrid = $rows['id'];
 
                session_start();
 
 
                $URL = "./index.php";
 
                if(!isset($_SESSION['userid'])) {
        ?>              <script>
                                alert("권한이 없습니다.");
                                location.replace("<?php echo $URL?>");
                        </script>
        <?php   }
                else if($_SESSION['userid']==$usrid) {
        ?>
        <form method = "get" action = "modify_action.php">
        <table  style="padding-top:50px" align = center width=700 border=0 cellpadding=2 >
                <tr>
                <td height=20 aligncenter bgcolor=#ccc><font color=white> 글수정</font></td>
                </tr>
                <tr>
                <td bgcolor=white>
                <table class = "table2">
                <tr>
                        <td>작성자</td>
                        <td><input type="hidden" name="id" value="<?=$_SESSION['userid']?>"><?=$_SESSION['userid']?></td>
                        </tr>
 
                        <tr>
                        <td>제목</td>
                        <td><input type = text name = title size=60 value="<?=$title?>"></td>
                        </tr>
 
                        <tr>
                        <td>내용</td>
                        <td><textarea name = content cols=85 rows=15><?=$content?></textarea></td>
                        </tr>
 
                        </table>
 
                        <center>
                        <input type="hidden" name="number" value="<?=$number?>">
                        <input type = "submit" value="작성">
                        </center>
                </td>
                </tr>
        </table>
        <?php   }
                else {
        ?>              <script>
                                alert("권한이 없습니다.");
                                location.replace("<?php echo $URL?>");
                        </script>
        <?php   }
        ?>
 
cs



수정하기 버튼을 눌렀을 때 받아온 id와 게시판 번호로 게시물을 조회합니다. 


조회한 게시물의 아이디와 현재 세션 아이디와 같다면 수정할 수 있습니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $connect = mysqli_connect("localhost""아이디""비밀번호""DB이름") or die ("connect fail");
    $number = $_GET[number];
    $title = $_GET[title];
    $content = $_GET[content];
    $date = date('Y-m-d H:i:s');
    $query = "update board set title='$title', content='$content', date='$date' where number=$number";
    $result = $connect->query($query);
    if($result) {
?>
        <script>
            alert("수정되었습니다.");
            location.replace("./view?number=<?=$number?>");
        </script>
<?php    }
    else {
        echo "fail";
    }
?>
cs



수정버튼을 눌렀을 때 결과 화면  ( 세션과 아이디가 동일 시 )





내용을 수정하고 작성 버튼을 누르면 


수정되었다고 alert창이 뜹니다. 



수정이 잘 됬다는 걸 볼 수 있습니다.




그리고 이전에 조회수를 만든다고 했던걸 깜빡해서... 조회수 증가 기능도 추가했습니다. 




/*조회수 코드*/

                $hit = "update board set hit=hit+1 where number=$number";

                $connect->query($hit);