반응형

로그인을 했는지 한눈에 확인할 수 있도록 게시판 리스트에 로그아웃 버튼을 달아보자. 로그인을 안했으면 로그인 버튼을 로그인을 했으면 로그아웃 버튼이 나타난다.

 

/app/Views/board_list.php

    <table class="table">
        <thead>
            <tr>
            <th scope="col">번호</th>
            <th scope="col">글쓴이</th>
            <th scope="col">제목</th>
            <th scope="col">등록일</th>
            </tr>
        </thead>
        <tbody id="board_list">
            <?php
            foreach($list as $ls){
            ?>
                <tr>
                    <th scope="row"><?php echo $ls->bid;?></th>
                    <td><?php echo $ls->userid;?></td>
                    <td><a href="/boardView/<?php echo $ls->bid;?>"><?php echo $ls->subject;?></a></td>
                    <td><?php echo $ls->regdate;?></td>
                </tr>
            <?php }?>
        </tbody>
        </table>

        <p style="text-align:right;">
            <a href="/boardWrite"><button type="button" class="btn btn-primary">등록</button><a>
           
            <?php
            if(isset($_SESSION['userid'])){
            ?>
                <a href="/logout"><button type="button" class="btn btn-warning">로그아웃</button><a>
            <?php }else{?>
                <a href="/login"><button type="button" class="btn btn-warning">로그인</button><a>
            <?php }?>
        </p>

 

세션이 있으면 로그인 한 것이니까 로그아웃 버튼이 보이도록 한다. 이제 로그인 후에 게시판 리스트에 가보면 로그아웃 보튼이 보일 것이다. 로그아웃 버튼을 클릭하면 로그아웃 처리되는 것은 직접 해보자. 

 

이제 등록 버튼을 클릭했을때 글쓰기 화면에도 변화를 줘보자. 글쓰기 화면에 사용자 이름이 나타나도록 수정하겠다.

 

/app/Views/board_write.php

    <form method="post" action="<?= site_url('/writeSave') ?>" enctype="multipart/form-data">
        <div class="mb-3">
        <label for="exampleFormControlInput1" class="form-label">이름</label>
            <input type="text" name="username" class="form-control" id="exampleFormControlInput1" placeholder="이름을 입력하세요." value="<?php echo $_SESSION['username']?>">
        </div>
        <div class="mb-3">
        <label for="exampleFormControlInput1" class="form-label">제목</label>
            <input type="text" name="subject" class="form-control" id="exampleFormControlInput1" placeholder="제목을 입력하세요." value="">
        </div>
        <div class="mb-3">
        <label for="exampleFormControlTextarea1" class="form-label">내용</label>
        <textarea class="form-control" id="exampleFormControlTextarea1" name="content" rows="3"></textarea>
        </div>
        <br />
        <button type="submit" class="btn btn-primary">등록</button>
    </form>

 

이렇게 나온다. 여기까지 들어왔다면 글을 작성해보자. 글이 작성되는 부분도 조금 바꿨다.

 

/app/Controllers/Board.php

<?php

namespace App\Controllers;
use App\Models\BoardModel;//사용할 모델을 반드시 써줘야한다.

class Board extends BaseController
{
    public function list()
    {
        $db = db_connect();
        $query = "select * from board order by bid desc";
        $rs = $db->query($query);
        $data['list'] = $rs->getResult();//결과값 저장
        return render('board_list', $data);//view에 리턴
    }

    public function write()
    {
        if(!isset($_SESSION['userid'])){
            echo "<script>alert('로그인하십시오.');location.href='/login'</script>";
            exit;
        }
        return render('board_write');  
    }

    public function save()
    {
        if(!isset($_SESSION['userid'])){
            echo "<script>alert('로그인하십시오.');location.href='/login'</script>";
            exit;
        }
        $db = db_connect();
        $subject=$this->request->getVar('subject');
        $content=$this->request->getVar('content');

        $sql="insert into board (userid,subject,content) values ('".$_SESSION['userid']."','".$subject."','".$content."')";
        $rs = $db->query($sql);
        return $this->response->redirect(site_url('/board'));
    }

    public function view($bid = null)
    {
        $db = db_connect();
        $query = "select * from board where bid=".$bid;
        $rs = $db->query($query);
        $data['view'] = $rs->getRow();

        return render('board_view', $data);  
    }
}

디비에 입력할때 아이값을 세션에서 가져와서 입력했다. 다음엔 수정하고 삭제하는 걸 해보자.

 

 

반응형

+ Recent posts