본문 바로가기
Project/project 1 - JH community

[php] 게시판 페이지 7 - 마이페이지 만들기 (完)

by 끊임없는정진 2022. 12. 12.

※ 보안적 요소는 거의 고려하지 않고 php명령어 숙달용으로 혼자서 만드는 로그인 페이지 입니다.

 

▶게시판 페이지를 위해 만들어야 할 파일 (※이번 시간에 만들파일은 굵은 글씨로 표기)

 

db.php : 데이터베이스 연결파일

index.php : 게시판 홈 화면 (수정)

search_result.php : 게시글 검색 화면 (수정)

board_read.php : 게시글 읽는 페이지

board_modify.php : 게시글 수정&생성 페이지

modify_check.php : 게시글 수정&생성 처리 페이지

board_delete.php : 게시글 삭제 처리 페이지

thumb_check.php : 좋아요 기능 처리 페이지

board_hit.php : 게시글 조회 순 정렬 페이지

board_recent.php : 게시글 날짜 순 정렬 페이지 

board_title.php : 게시글 제목 순 정렬 페이지

myprofile.php : 마이페이지 만들기 (完)

 

▶마이페이지( myprofile.php)

 

마이페이지 요구사항으로 회원개인정보 조회, 회원개인정보 변경가능 을 요구한다. 따라서, DB에서 내 id에 해당하는 정보를 출력하게끔 만든다. 참고로 회원정보 수정페이지는 내가 회원가입 페이지와 통합을 해서 만들었기 때문에 별도로 만들 필요가 없다. 간단하게 회원가입 양식을 사용해서 해당 폼에 정보를 불러오고,  'readonly' 옵션을 걸어줬다. 불러올 정보는 '아이디, 이름, 주소, 게시판에 작성한 글 수' 로 정했다. 또한, 내가 작성한 글을 조회할 수 있게끔, 현재 내 이름으로 작성한 글을 조회할 수 있는 기능을 추가했다. 

우선, 출력할 정보를 불러오는 단계는 다음과 같다. 

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
<?php
include("./db.php");
 
if(isset($_SESSION['ss_jj_id'])) {
 
}else {
        echo "<script>alert('login plz.');</script>";
        echo "<script>location.replace('logout_check.php');</script>";
        exit();
}
 
if(isset($_SESSION['ss_jj_id'])) {
  $jj_id = $_SESSION['ss_jj_id'];
  //member 테이블에서 회원정보 조회      
  $sql = " SELECT * FROM member WHERE jj_id = '$jj_id'";
  $result = mysqli_query($conn1$sql);
  $jj = mysqli_fetch_array($result);
  //작성 게시글 조회를 위해 board 데이터 조회
  $sql2 = " SELECT * FROM board WHERE id = '$jj_id'";
  $board = mysqli_query($conn1$sql2);
  //작성 게시글 수 (=데이터 행렬의 행 수) 조회
  $rows = mysqli_num_rows($board);
  mysqli_close($conn1);
  $catgory = "name";
  $search_con = $jj['jj_name'];
}
?>
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
<form>
   <input type="hidden" name="mode" value="<?php echo $mode ?>">
<!--아이디 출력-->
   <label for="jj_id">아이디</label>
   <div class="mb-3">
        <input type = "text"
        id="jj_id"
        name="jj_id"
        class="form-control"
        value="<?php echo $jj['jj_id'] ?? '' ?>" readonly>
   </div>
<!--이름 출력-->
   <label for="jj_name">이름</label>
   <div class="mb-3">
        <input type="text"
        id="jj_name"
        name="jj_name"
        class="form-control"
        value="<?php echo $jj['jj_name'] ?? '' ?>" readonly>
   </div>
<!--주소 출력-->
   <label for="jj_address">주소</label>
   <div class="mb-3">
        <input type="text"
        id="jj_address"
        name="jj_address"
        class="form-control"
        value="<?php echo $jj['jj_address'] ?? '' ?>" readonly>
   </div>
<!--작성 게시글 수 출력-->
   <label for="jj_address">게시판에 쓴 글 수</label>
   <div class="row">
     <div class="mb-3">
        <input type="text"
        id="jj_address"
        name="jj_address"
        class="form-control"
        value="<?php echo $rows ?? '0' ?>" readonly>
    </div>
  </div>
<!--회원정보 수정버튼, 내가 작성한 글 확인버튼-->
  <div class="mt-1">
  <a href="./register.php" class="btn btn-primary">회원정보수정</a>
  <a href="./search_result.php?$page=1&catgo=name&search=<?=$search_con?>&date1=&date2=" class="btn btn-outline-primary">글 확인하기</a>
</div>
</form>
 
cs

 

해당 양식으로 만든 마이페이지는 다음과 같이 실행된다. 

마이페이지 화면 (myprofile.php)

 

또한, '글 확인하기' 버튼을 누르면 내 이름($catgory="name";)에 해당하는 DB상의 이름($search_con=$jj['jj_name'];)을 게시판에서 검색하게 된다. 그 결과는 다음과 같이 웹 브라우저에 출력된다.

글 확인하기 버튼 클릭 결과

 

단, 마이페이지에 출력되는 '내가 작성한 글'은 'id'정보로 로드하기에 정확하게 내가 쓴 글을 로드하는 것이 맞다. 하지만, '내가 작성한 글'을 '조회'할 경우, 'name'정보로 '게시판에 검색'을 하기 때문에 '현재의 닉네임으로 쓴 글'만 로드하게 된다. 'id'정보로 글을 검색하는 기능을 추가해볼까 생각을 해봤지만, 아무래도 id정보란게 '인증'의 영역이라 마음대로 조회할 수 있게 만들면 악용될 수도 있겠다는 생각이 들어 추가하지는 않았다. 만약 '내가 쓴 글 조회'의 정확성을 높이고 싶다면 'id'정보로 게시글을 검색하게끔 만들어도 될 것이다.

참고로, '마이페이지'에 접속하는 경로는 홈페이지 위 쪽  'nav'태그 안에 넣어뒀다(자세한 방법은 Bootstrap 추가하는 법을 설명하면서 넣을 예정). 

아이디 정보란에 마이페이지로 이동할 수 있게끔 nav태그 안에 넣어뒀다.

 

댓글